Answers:
无需在该组中添加root用户,因为它无论如何都可以通过用户privs进行访问,只需将组读取到您决定的任何组即可。请记住也要使用logrotate进行更改,否则组更改将在每晚删除。
只是在上面的答案上稍微扩展一下,这是一个真实的用例。我在Redhat框上运行企业日志分析应用程序Splunk。它在splunk用户和splunk组下运行。这可以防止splunk访问/ var / log中的日志,因为它们只能由root用户(或sudo admin)访问。
为了只允许对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/FilePermissionsACL http://bencane.com/2012/05/27/acl-using-access-control-lists-on-linux/
/etc/logrotate.d/Splunk_ACLs
您张贴在此处的全部内容吗?您实际上不需要为logrotate指定任何路径来处理postrotate位吗?