2012年7月29日日曜日

一般ユーザでログを参照する

rootじゃなくても(sudoを実行しなくても)ログを参照したいが、
特定のユーザに限定したい時は以下のようにする。

1.まず、ログを参照するユーザだけが所属するグループを作成
 
 [root@cent6 ~]# groupadd logadmin

2.そのグループにユーザを追加

 [root@cent6  ~]# usermod -a -G logadmin user1

3.ログのアクセス権を修正

  [root@cent6 ~]# chmod g+r /var/log/maillog
  [root@cent6 ~]# chgrp logadmin /var/log/maillog


これでlogadminグループに所属するuser1ユーザは、rootにならずとも/var/log/maillogが参照できるようになる。

なお、ログローテーションが実施された時に都度アクセス権を修正するのではなく、自動的に修正された状態にするには、/etc/logrotate.confの記述を以下のように修正する。

(修正前)
create

(修正後)
create 640 root logadmin

2012年7月22日日曜日

logrotate (ログのローテーション)

CentOS6(RHEL6)になって、ログローテーションまわりも変わっている事に気づいた。
今までローテーションされたファイルはsecure.1やsecure2のようになり、タイムスタンプを見ないと、いつローテーションされたのかすぐにわからなかったが、今度は日付がつくようになっている。


[root@cent6 ~]# ll /var/log/secure* /var/log/messages*
-rw-r----- 1 root logadmin     0 Jul 22 04:02 /var/log/messages
-rw-r----- 1 root logadmin  3246 Jul  8 04:02 /var/log/messages-20120708
-rw-r----- 1 root logadmin 38684 Jul 15 04:02 /var/log/messages-20120715
-rw-r----- 1 root logadmin  7275 Jul 22 04:02 /var/log/messages-20120722
-rw-r----- 1 root logadmin   687 Jul 22 16:15 /var/log/secure
-rw-r----- 1 root logadmin 10624 Jul  7 17:07 /var/log/secure-20120708
-rw-r----- 1 root logadmin  8140 Jul 15 00:47 /var/log/secure-20120715
-rw-r----- 1 root logadmin  6437 Jul 20 10:08 /var/log/secure-20120722
[root@cent6 ~]#

で、/etc/logrotate.confを確認したところ”dateext”というパラメータが指定されているせいですね。
※CentOS5でも”man 8 logrotate”で確認しましたが、知らなかっただけで、ちゃんと存在していました・・・

2012年7月15日日曜日

CentOS6系で変更されたnss_ldapまわり

CentOS6(RHEL6)になって、libnss_ldap.soを含むnss_ldapパッケージがnss-pam-ldapdというパッケージに変更された。そのnss-pam-ldapdパッケージには、nslcdというデーモンが含まれるようになった。
→ 「# Description: Provides naming services using a directory server. 」とある
→ 設定ファイルは、/etc/nslcd.conf

変更されて良くなった点は、(個人的には)以下の通り。
・LDAPでユーザ管理をしている状態で、LDAPサーバが停止してしまった場合にローカルアカウントでもログインできなくなる症状が改善されている
→ 以前は、/etc/pam.d/system-authに"authinfo_unavail=ignore"を追加したり、
/etc/ldap.confに"bind_policy soft"を指定していた

→ 今度はLDAPサーバが停止していても、デフォルト設定で約10秒ほど待つと普通にログインできるようになった
(さらに、一度、LDAPサーバにはつなげないと判断すると、次回からは待ち時間なしで接続可)
→"bind_policy soft"のように動作させるには、"reconnect_retrytime 0"とすれば良い