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


15

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

chmod o+r /var/log/maillog

今考えてみると、これは1つのログファイルに過ぎず、ログファイルがいっぱいになると、ログローテーションメカニズムはこのファイルの名前を変更して新しいファイルを開きますが、新しいmaillogファイルにはread write許可されたものがありません。

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

前もって感謝します

回答:


21

logrotatecreateオプションがあります:

create mode owner group

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

詳細はをご覧くださいman logrotate

次のように使用します。

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

in /etc/logrotate.confまたは別のファイルinで/etc/logrotate.d、他のファイルがこれを上書きしていないかどうかを確認します。これがどのように設定されるかは、OSによって異なります(Ubuntuの場合、これはrsyslog設定で処理されます)。


/var/log/maillogメールログに既に適用されているデフォルト設定を変更せずに、将来のログファイルのみが目的のユーザー権限で作成されるように構成するにはどうすればよいですか?
イタイガノ14

私の編集を参照してください読んでman logrotate(とに見える/etc/logrotate.confし、/etc/logrotate.d多くの例のために)。
スヴェン

2
@ItaiGanotまた、初期chmodを実行する代わりに、syslog構成を修正して、適切な許可でファイルを作成するようにする必要があります。
ジェニーD 14

@JennyD、ありがとう、それは設定を行うために/var/log/maillog行を削除する必要があるということですか?/etc/logrotate.d/syslog/etc/logrotate.conf
イタイガノ14

2
@ItaiGanotいいえ!これは、使用しているsyslogプログラム(おそらくsyslog-ngまたはrsyslog)を見つけて、その構成を変更する必要があることを意味します。これは、システムを再起動したとき、または他の何らかの理由でsyslogプログラムを再起動したときに、間違った権限でファイルを再作成する可能性があるためです。
ジェニーD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.