私のアプリケーションでは、ユーザーとグループroot
に属する/var/log/messages
への読み取りアクセスが必要です。アプリケーションが読み取れるように、/var/log/messages
で最低限必要な露出レベルは何ですか?
現在、私の計画は、/var/log/messages
のグループ所有権を新しいグループに変更し、rootとアプリケーションユーザーをそのグループに追加することですが、これにより、アプリケーションに/var/log/messages
への書き込み特権も付与されます。
OS:Centos 5.5
Rootをグループに追加する必要はありません。ユーザーprivsを介してアクセスできるため、グループに決定したグループの読み取りを許可するだけです。 logrotateでも変更を加えることを忘れないでください。変更しないと、グループの変更が毎晩消去されます。
上記の答えを少し拡張するために、ここでは実際の使用例を示します。エンタープライズログ分析アプリケーションSplunkをRedhatボックスで実行しています。これは、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 /
あなたの計画は受け入れ可能であり、「伝統的な」Unix許可スキームで行くのが最善の方法です。
別のオプションは、syslogを使用して対象のメッセージを別のファイルに転送することです(これにより、アプリのユーザーが/var/log/messages
にある可能性のある機密情報にアクセスすることを回避できます)。
ユーザー/グループ/その他の従来のアクセス許可スキームに縛られたくない場合は、 POSIX ACLs (その他、おそらくGoogle経由で利用できるより優れたハウツー/情報)を使用して、アプリユーザーに与えることもできます。 /var/log/messages
への読み取り専用アクセス-これはもう少し詳細であり、誤って他の人をアプリケーションのグループに入れて、彼らが見ることができないものへのアクセスを彼らに与える危険を冒しません。
私はsetfacl
を使用して顧客にmail.log
ファイルへのアクセス権を付与しましたが、logrotate.conf
ファイルにコマンドを貼り付けて再設定する必要はありませんログがローテーションされた後のACL。例:
postrotate
/usr/bin/setfacl -m o::r /var/log/mail.log
endscript
私はこれを設定しただけでテストはしていませんが、ここにポストバックしますが、うまくいかない理由を確認できません。間違っている場合は誰かが修正してくれます。
これには [〜#〜] acl [〜#〜] を使用できます。特定のユーザーとファイルに特定の追加アクセスルールを設定できます。