今回logrotateがエラーをはいていたので、logrotate -vdを用いて動作検証を行ったところ以下のエラーが含まれていた。
error: roundcubemail:3 unknown option 'su' -- ignoring line error: roundcubemail:3 unexpected text
これは、/etc/logrotate.d/roundcubemailの3行目の記述「su」が「unknown option」となっていることを示す。
/etc/logrotate.d/roundcubemailの記述は以下の通り
# cat -n /etc/logrotate.d/roundcubemail
1 /var/log/roundcubemail/errors {
2 missingok
3 su root apache
4 notifempty
5 size 30k
6 create 0660 root apache
7 }
#
ここで、利用している環境を書いておく。
- RoundCubeMail ver0.9.5
- logrotate ver3.7.8
unknown option ‘su’ のエラーは、
/etc/logrotate.d/roundcubemailに記載がある「su root apache」の記述が理解できない
ために発生しています。
調べたところ、logrotateの設定ファイルで「su」が利用できるのは logrotate 3.8.0 以上の場合。
3.8.0から新たに追加されたオプションだとのこと。
Oh, that’s a new feature with 3.8.x. Whoops. I’ll get a fix out.
https://bugzilla.redhat.com/show_bug.cgi?id=753983
3.7.9 -> 3.8.0
– added “dateyesterday” option (see man page)
– fixed crash when config file had exactly 4096*N bytes
– added WITH_ACL make option to link against -lacl and preserve ACLs
during rotation
– added “su” option to define user/group for rotation. Logrotate now
skips directories which are world writable or writable by group
which is not “root” unless “su” directive is used.
– fixed CVE-2011-1098: race condition by creation of new files
– fixed possible shell injection when using “shred” directive (CVE-2011-1154)
– fixed escaping of file names within ‘write state’ action (CVE-2011-1155)
– better ‘size’ directive description
– fixed possible buffer-overflow when reading config files
– NetBSD/FreeBSD compilation fixes
– Solaris compilation fixes
http://svn.fedorahosted.org/svn/logrotate/tags/r3-8-7/CHANGES
上記引用サイトからの情報をまとめると、以下の通りになる。
- “su”オプションは3.8.0から追加された
- 3.8.0からは、ログディレクトリが誰でも書き込めるもしくはroot以外のグループが書き込める状態で、且つ
“su”オプションがない場合はローテーションの対象外となる
以上から、このエラーはlogrotateのバージョンが古い(3.8.0未満である)ためにおきるエラーであることがわかる。
/etc/logrotate.d/roundcubemailの3行目をコメントアウトすることでエラーをなくすことができるが、記述が無視されていることを示すエラー(しかもデバッグじゃないと出てこないエラー)なのでコメントアウトを行う必要はない。というかしないほうがいい。
理由は、上記まとめにあるとおりで、/var/log/roundcubemailがroot以外のグループが書き込めるパーミッションに設定されているため、logrotateのバージョンが3.8.0以上になったときにlogrotate対象外となってしまうからだ。
# ls -ld /var/log/roundcubemail/ drwxrwxr-x. 2 root apache4096 1月 7 12:51 2014 /var/log/roundcubemail/ #
今回は、この問題はそっと触らずおいておくこことにする。
以上
コメント
おはようございます。
roundcubemail?使ったことがないです。
こんにちは
round cube mail は無料でインストールできるWebメールです(^^)