web-dev-qa-db-ja.com

Rsyslogチャネルはルートから所有権を変更します

こんにちは、Ubuntu 10.464ビットLTSでrsyslogを使用しています。

以下は、/ etc/rsyslog.d /60-mylogger.confの関連する構成です。

$ template Paul、 "%msg%\ n"

$ outchannel log_rotation_paul、/ var/log/paul/events.log、2000、/ opt/scripts/log_rotation_script.sh

local0。* $ log_rotation_paul; Paul

これは2000バイトごとにローテーションする必要があります

私の問題は、ここのチャネルディレクティブにより、/ etc/rsyslog.confで定義された所有権が完全に無視され、ログローテーションスクリプトが呼び出されたときに、スクリプトの実行時にログファイルを移動するために必要なroot権限がないことです。 rsyslogと移動するファイルには、root権限が必要です。

私がこれを見つけたアイデア リンク しかし残念ながらそれは私の問題を解決しません。

1
Paul Whelan

私が正しく理解していれば、/ var/log/paul /events.logはrootが所有しています。それでも、/ var/log/paul /events.logを移動できないrsyslogユーザーとしてスクリプトを実行しています。

Sudo chown -R root.rsyslog /var/log/paul/
Sudo chmod 0775 /var/log/paul
Sudo chmod g+s /var/log/paul

現在、/ var/log/paul内の新しいファイルは常にrsyslogによって所有されています。使用する別のソリューションはACLです。

2
user8290