我正在使用 cronjob 启动一个脚本,该脚本将在重启时触发我的 teamspeak
它运行良好一段时间,直到我激活 Selinux,cron 不再工作了
我在 cron 日志中发现这个错误:
Aug 2 16:14:21 Manu crond[683]: (teamspeak3-user) Unauthorized SELinux context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 file_context=system_u:object_r:unlabeled_t:s0 (/var/spool/cron/teamspeak3-user)
Aug 2 16:14:21 Manu crond[683]: (teamspeak3-user) FAILED (loading cron table)
我在网上搜索过,有些人在谈论一个已知的错误和解决方法,但对我来说不起作用。
请帮助。
添加的信息:
ls -lZ /var/spool/cron/teamspeak3-user
-rw-------. teamspeak3-user teamspeak3-user system_u:object_r:unlabeled_t:s0 /var/spool/cron/teamspeak3-user
答案1
因此您需要更改 var/spool/cron 下的 cron 文件的类型
尝试这个:
# chcon -t user_cron_spool_t /var/spool/cron/teamspeak3-user
请看这里了解更多信息:
答案2
我觉得这chcon
是一个快速解决方案。最好通过 semanage 将其设置为规则:
# semanage fcontext -a -t user_cron_spool_t "/var/spool/cron(/.*)?"
# restorecon -R -vv /var/spool/cron
它将在任何系统更新后继续存在并自动应用于新用户的 cronjob。
答案3
我尝试通过 /etc/crontab 中的 cron 作业每天晚上 11:00 自动关闭我的 rhel 7.3 服务器。我遇到了类似的问题,selinux 不允许运行该作业。
但是我通过在 /etc/cron.d/ 中创建一个新的 crontab 文件找到了解决方案,并且 cron 作业成功执行并在 /etc/cron.d/crontab 文件中定义的时间关闭系统。
我从下面的 RHEL 页面第 24.1.2 点“安排 Cron 作业”中找到了解决方案