TransWikia.com

logrotate時に出るparent directory has insecure permissionsに関して

スタック・オーバーフロー Asked by user25791 on December 16, 2021

次のように、nginxを動かしているユーザーtekitouに/var/log/php-fpm以下の所有権を与えると

chown -R tekitou:tekitou /var/log/php-fpm

以下のようなエラーが出ます

/etc/cron.daily/logrotate:
error: skipping "/var/log/php-fpm/error.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.
error: skipping "/var/log/php-fpm/www-error.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.

このエラー自体は上のメッセージにあるようにlogrotateの設定ファイルを修正する事で出なくなるようですが、気になるのはこの部分です

because parent directory has insecure permissions (It's world writable or writable by group which is not "root")

ログを書き込むために権限が必要だったので、nginxを動かしているユーザーに所有権を与えたのですが、
このメッセージ(insecure permissions)を見る限りこのような事をするのは止めたほうが良かったのでしょうか?

もし、止めたほうがいいのであるならば、好ましいのはどのような方法でしょうか?

また、このままにする事でどのようなセキュリティー上のリスクがあるのでしょうか?


パーミッションを追記しました。
ユーザー、グループはいずれもtekitou、tekitouです。

/var/log/php-fpm 770
/var/log/php-fpm/error.log 600
/var/log/php-fpm/www-error.log 644

One Answer

エラーの出ている各ログファイル(error.log, www-error.log)の親ディレクトリ、今回の場合は/var/log/php-fpm/のパーミッションが770ということで、グループに対しての書き込み権限が立っており、この部分で怒られているのだと思います。

懸念事項としては、パーミッションの設定が不適切でgroup(グループ)やworld(その他)に対して書き込み権限が付いていた場合、不用意に他のユーザーからログが書き換えられてしまう可能性があるということでエラーが出ているのでしょう。

対策としては、該当ディレクトリのパーミッションを修正するか、参考1

# chmod 750 /var/log/php-fpm/
            or
# chmod g-w /var/log/php-fpm/

メッセージにも出ている通りloglotate.confの中で「どのユーザー権限でロテートするか」をsu ディレクティブで指定してあげるのがよいそうです。参考2

/var/log/php-fpm/*.log {
    ...
    su tekitou tekitou
}

Answered by cubick on December 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP