/var/log/portage/elog/summary.log logrotate error

しばらく前に logratate をアップグレードして以来、以下のようなエラーが出ていた。

error: skipping "/var/log/portage/elog/summary.log"
because parent directory has insecure permissions 
(It's world writable or writable by group which is not "root") 
Set "su" directive in config file to tell logrotate
which user/group should be used for rotation.


summary.log のパーミッションの関係でエラーを吐いているらしい。


実際にパーミッションを見に行ったらこんな感じ。

$ ls -la /var/log/portage/elog/
drwxrws--- 2 portage portage  4096 Aug 30 03:47 .
drwxrwsr-x 3 portage portage  4096 Jul 22  2010 ..
-rw-rw-r-- 1 root portage     1493 Aug 30 03:50 summary.log
-rw-rw-r-- 1 root portage     1373 Jul 11 06:19 summary.log-20110716.gz
-rw-rw-r-- 1 root portage      263 Jul 17 12:16 summary.log-20110723.gz
-rw-rw-r-- 1 root portage     1084 Aug  2 18:54 summary.log-20110803.gz
-rw-rw-r-- 1 root portage    17713 Aug 25 16:27 summary.log-20110828

対処方法

logrotate の設定で以下のように su で所有権の設定をして、ついでにファイルの所有権も portage/portage になおしてやる (もしくは逆に logrotate の設定とディレクトリの所有権を root/portage で合わせてもいいと思う) 。

$ cat /etc/logrotate.d/elog-save-summary
/var/log/portage/elog/summary.log {
    su portage portage
    missingok
    nocreate
    delaycompress
}


$ sudo chown portage:portage /var/log/portage/elog/*

$ ls -la /var/log/portage/elog/
drwxrws--- 2 portage portage  4096 Aug 30 03:47 .
drwxrwsr-x 3 portage portage  4096 Jul 22  2010 ..
-rw-rw-r-- 1 portage portage  2148 Aug 30 03:57 summary.log
-rw-rw-r-- 1 portage portage  1373 Jul 11 06:19 summary.log-20110716.gz
-rw-rw-r-- 1 portage portage   263 Jul 17 12:16 summary.log-20110723.gz
-rw-rw-r-- 1 portage portage  1084 Aug  2 18:54 summary.log-20110803.gz
-rw-rw-r-- 1 portage portage 17713 Aug 25 16:27 summary.log-20110828


エラーを吐かなくなる。

確認方法

件のエラーが消えているはず。

$ sudo /usr/sbin/logrotate -v /etc/logrotate.conf
・
・
・
rotating pattern: /var/log/portage/elog/summary.log  weekly (4 rotations)
empty log files are rotated, old logs are removed
switching euid to 250 and egid to 250
considering log /var/log/portage/elog/summary.log
  log does not need rotating
switching euid to 0 and egid to 0
・
・
・

実は sys-apps/portage-2.1.10.11 で…

上記の /etc/logrotate.d/elog-save-summary の修正は 8/27 に stable にあがった sys-apps/portage-2.1.10.11 の中に含まれているので、 portage のアップデートを行った場合は手書きで修正する必要はなく。 アップデートと dispatch-conf さえ行ってれば summary.log の所有権の設定を合わせるだけでいい…ハズ。