如何修改 SELinux 访问限制

如何修改 SELinux 访问限制

我希望 SELinux 允许 LogRotate 守护进程轮换和压缩 /var/log/audit/audit.log 下的审计日志,但它被阻止了,并显示以下错误消息:

Oct 27 04:06:03 setroubleshoot: SELinux is preventing /usr/sbin/logrotate "read" access on /var/log/audit. 

/var/log/audit 目录的上下文是:

drwxr-x---. root  root  system_u:object_r:auditd_log_t:s0 audit

是否有一个上下文可以提供给文件或目录,使 SELinux 表现得像已关闭一样?我正忙于文档,不可能一夜之间就学会这个东西,所以我想实施一种解决方法,直到我能做对为止。欢迎任何朝着正确方向的推动。

编辑:我还发现我遇到的所有文档都与我的 CentOS 6 服务器上实际存在的内容不匹配(即文件和配置位置)。有没有其他人遇到过这个问题,并且没有好的“正确”信息来源?

编辑2——我收回刚才的话,他们在不同的部分有关于制定政策的说明。http://www.centos.org/docs/5/html/Deployment_Guide-en-US/sec-sel-building-policy-module.html

最终编辑:所以我的最终目标是尝试每天轮换审计日志,因为我每天都会发送一封电子邮件,其中包含任何新的 SELinux 警报,但我一直收到相同的消息。因此,我尝试创建一个新的 logrotate 规则来执行这些日志,但 SELinux 阻止了它。事实证明,auditd 有一个内置的轮换函数,可以通过运行来调用该函数/sbin/service auditd rotate来轮换日志。我只需在每日 cron 作业中设置它即可。我仍然认为 SELinux 问题很有价值,所以如果有人愿意回答它,它可能会帮助未来的谷歌人

答案1

尝试这个:

semanage fcontext -a -t var_log_t '/var/log/audit(/.*)?'
restorecon -R -v /var/log/audit

某处是否有可用类型的列表?

# seinfo -t | less

您如何知道使用“var_log_t”类型?

https://bugzilla.redhat.com/show_bug.cgi?id=682473

# semanage fcontext -l | grep '/var/log'

相关内容