我正在运行 Fedora 20,在运行 logrotate 和 anacron 时遇到一些问题,我怀疑这可能与 SELinux 有关:
Failed to determine timestamp: Cannot assign requested address
chgrp: changing group of /var/log/mariadb: Permission denied
我做了一些研究并发现了这篇文章Gentoo 维基内容如下:
如果要使用 cronjobs 执行系统管理任务,则需要特别注意运行作业的域具有足够的权限。
首先,确保您的 cronjobs 在 system_cronjob_t 域中运行。这意味着 cronjobs 必须定义为
scripts in the /etc/cron.hourly, /etc/cron.daily, ... directories crontab entries in the /etc/cron.d directory crontab entries in the /etc/crontab file
检查我的 SELinux 默认策略后发现我有以下策略:
/etc/cron.daily(/.*)? all files system_u:object_r:bin_t:s0
/etc/cron.hourly(/.*)? all files system_u:object_r:bin_t:s0
/etc/cron.monthly(/.*)? all files system_u:object_r:bin_t:s0
/etc/cron.weekly(/.*)? all files system_u:object_r:bin_t:s0
/etc/cron\.d(/.*)? all files system_u:object_r:system_cron_spool_t:s0
/etc/crontab regular file system_u:object_r:system_cron_spool_t:s0
我是否应该更改 SELinux 策略,以便将它们system_cronjob_t
作为上下文标签?
答案1
看起来应该是这样的:
来自 selinux-policy-3.12.1-139 的变更日志:
- 允许通过 bin_t 输入 systemd_cronjob_t
/var/log/audit/audit.log
你有关于 的错误吗mariadb
?快速简单的检查是setenforce=0
运行您的cron
作业。如果它们表现得更好,那么问题就是 SELinux 造成的。