web-dev-qa-db-ja.com

Linux:ログローテーションによって作成された新しく作成されたログに特定の権限を適用するにはどうすればよいですか?

_/var/log_で作成されているメールログが作成され、root(ユーザーとグループ)が所有していることに気付きました。ログを監視するNagiosチェックを作成し、Nagiosユーザーがログにアクセスできるようにするために、otherグループに読み取り権限を付与しました。

_chmod o+r /var/log/maillog
_

今考えてみると、これは1つのログファイルだけです。ログファイルがいっぱいになると、ログローテーションメカニズムがこのファイルの名前を変更して新しいファイルを開きますが、新しいmaillogファイルには_read write_許可しました。

だから私の質問は、ログローテーションメカニズムがNagiosユーザーに適切な権限を持つすべての新しいmailllogファイルを作成することをどのように確認できるのですか?

前もって感謝します

15
Itai Ganot

logrotateにはcreateオプションがあります:

create mode owner group

ローテーションの直後(postrotateスクリプトが実行される前)に、ログファイルが作成されます(ローテーションされたログファイルと同じ名前)。 modeはログファイルのモードを8進数で指定し(chmod(2)と同じ)、ownerはログファイルを所有するユーザー名を指定し、groupはログファイルが属するグループを指定します。ログファイルの属性はいずれも省略できます。その場合、新しいファイルの属性は、省略された属性の元のログファイルと同じ値を使用します。このオプションは、nocreateオプションを使用して無効にできます。

man logrotateで詳細をご覧ください。

次のように使用します。

/var/log/maillog {
....
        create 664 user group
....
}

/etc/logrotate.confまたは/etc/logrotate.d内の別のファイルにあり、他のファイルがこれをオーバーライドしていないかどうかを確認します。これがどのように構成されるかは、OSによって異なります(Ubuntuでは、これはrsyslog構成で処理されます)。

21
Sven