2016-01-24 50 views
-2

我的系統是fedora 23.cron selinux安全上下文問題

試圖運行被/ etc/crontab中的selinux阻止的cronjob。

的crontab中
* * * * sun,mon,tue,wed,thu,fri,sat root DISPLAY=:0 eog $HOME/Pictures/somepic.jpg 

方面:

-rw-r--r--. 1 root root unconfined_u:object_r:etc_t:s0 2664 Jan 23 18:12 /etc/crontab 

如果我運行許可模式的SELinux,作業運行每次。

這裏是在 '強制模式' 爲crond的日記帳分錄:

-- Logs begin at Wed 2016-01-20 10:40:21 PST. -- 
Jan 23 18:25:01 localhost.localdomain CROND[20342]: (root) CMDOUT (/bin/sh: root: command not found) 
Jan 23 18:25:25 localhost.localdomain crond[938]: (CRON) INFO (Shutting down) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (CRON) INFO (Syslog will be used instead of sendmail.) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 12% if used.) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: ((null)) Unauthorized SELinux context=system_u:system_r:system_cronjob_t:s0-s0:c0.c1023 file_context=unconfined_u:object_r:etc_t:s0 (/etc/crontab) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (root) FAILED (loading cron table) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (root) Unauthorized SELinux context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 file_context=unconfined_u:object_r:user_cron_spool_t:s0 (/var/spool/cron/root) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (root) FAILED (loading cron table) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (CRON) INFO (running with inotify support) 
Jan 23 18:25:25 localhost.localdomain crond[18645]: (CRON) INFO (@reboot jobs will be run at computer's startup.) 

sebool設置:

cron_can_relabel --> off 
cron_system_cronjob_use_shares --> off 
cron_userdomain_transition --> on 
fcron_crond --> off 
+0

1)你爲什麼運行作業爲根?你想要訪問的文件到底在哪裏? 2)這到底是什麼:「太陽,星期一,星期三,星期四,星期五,星期五,星期五」? – Jakuje

回答

1

我有同樣的問題。有一個很長一段時間工作很好的crontab。使用crontab -e編輯,並停止工作。嘗試作爲根用戶和普通用戶。一些四處搜尋,這是一個目前已知的錯誤。

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

我試着在評論#19中所列的解決方法。它工作正常。

創建文件mycron.cil
(允許unconfined_t user_cron_spool_t(文件(入口點)))

然後運行:
semodule -i mycron.cil

然後,重新啓動的cron:
systemctl重啓的crond .service

評論21告訴您如何在發佈修復程序時移除解決方法。

運行刪除:
semodule -r mycron
(我假設再次重新啓動的cron)

+0

請注意,這個錯誤應該在2016年1月26日之後解決(回答後一天)。之後,如果您在最新的Fedora中發現類似的問題,那幾乎可以肯定是一個不同的錯誤。 – mattdm