解決策 1:
上記の回答を少し拡張すると、実際の使用例になります。私は Redhat ボックスでエンタープライズ ログ分析アプリケーション Splunk を実行しています。これは、splunk ユーザーおよび splunk グループの下で実行されます。これにより、root (または sudo 管理者) のみがアクセスできるため、splunk が /var/log 内のログにアクセスできなくなります。
Splunk のみに読み取り専用アクセスを許可するために、いくつかの ACL を使用し、logrotate を変更して永続化しました。
で ACL を手動で設定できます
sudo setfacl -m g:splunk:rx /var/log/messages
logrotate は ACL 設定を再適用しないため、これは持続しません。そのため、より永続的な解決策として、logrotate にルールを追加して ACL をリセットしました。ファイルを追加しました..
/etc/logrotate.d/Splunk_ACLs
と
{
postrotate
/usr/bin/setfacl -m g:splunk:rx /var/log/cron
/usr/bin/setfacl -m g:splunk:rx /var/log/maillog
/usr/bin/setfacl -m g:splunk:rx /var/log/messages
/usr/bin/setfacl -m g:splunk:rx /var/log/secure
/usr/bin/setfacl -m g:splunk:rx /var/log/spooler
endscript
}
ファイルの ACL ステータスを確認する
$ getfacl /var/log/messages
ACL の詳細については、https://help.ubuntu.com/community/FilePermissionsACLshttp://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/ を参照してください。
解決策 2:
とにかくユーザー特権を介してアクセスできるため、グループにルートを追加する必要はありません。決定したグループにグループの読み取りを許可するだけです。 logrotate を使用して変更を行うことも忘れないでください。そうしないと、グループの変更が毎晩消去されます。
解決策 3:
あなたの計画は受け入れられ、「従来の」Unix パーミッション スキームが最善の方法です。
もう 1 つのオプションは、syslog で対象のメッセージを別のファイルに迂回させることです (これにより、アプリ ユーザーが 03
にある可能性のある機密情報にアクセスできなくなります)。 ).
ユーザー/グループ/その他の従来のアクセス許可スキームに縛られたくない場合は、POSIX ACL (その他、Google から入手できるより良いハウツー/情報) を使用して、アプリ ユーザーに 15
-- これはもう少しきめの細かいものであり、誤って他の誰かをアプリケーションのグループに入れて、彼らが見ることができないはずのものへのアクセス権を与えてしまうリスクはありません.
解決策 4:
はい、私は 21
を使用しました これを行うには、31
へのアクセスを許可します 49
にコマンドを追加する必要はありません。 ログがローテーションされた後に ACL を再設定するためのファイル 例:
postrotate
/usr/bin/setfacl -m o::r /var/log/mail.log
endscript
私はこれを設定したばかりで、テストしていないことに注意してください。ただし、ここに投稿することはできますが、なぜ機能しないのかわかりません。間違っている場合は誰かが訂正してください。