有多种选项 - 使用 cron - 在特定时间启动脚本,但其中一个比另一个更安全吗?
我的问题很简单:
/etc/cron.daily/
在 中 添加脚本或 在 中 编辑脚本之间有什么区别crontab(-e)
?
我担心的是其他用户能够看到该内容。我想确保除了 root 之外没有人可以查看 crontab,无论它是在/etc/cron.daily/
用户的 crontab 中还是在用户的 crontab 中。
/etc/cron.daily/
其他用户是否能够看到您可以使用 crontab中的内容crontab -l
?
我总是以 root 身份登录特定服务器。我只需要知道 cron 的对象/内容/时间,这样我就可以在实施 cron 作业时做出明智的选择。
我使用的是 CentOS 6.6。
答案1
默认情况下,系统范围的脚本/etc/cron*
是世界可读的。例如,在我的 Arch 上:
$ ls -ld /etc/cron*
drwxr-xr-x 2 root root 4096 May 31 2015 /etc/cron.d
drwxr-xr-x 2 root root 4096 May 31 2015 /etc/cron.daily
-rw-r--r-- 1 root root 74 May 31 2015 /etc/cron.deny
drwxr-xr-x 2 root root 4096 May 31 2015 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 May 31 2015 /etc/cron.monthly
drwxr-xr-x 2 root root 4096 May 31 2015 /etc/cron.weekly
和:
$ ls -l /etc/cron.d/0hourly
-rw-r--r-- 1 root root 128 May 31 2015 /etc/cron.d/0hourly
默认情况下存在特定于用户的 cron 文件/var/spool/cron
,并且它们至少在我的系统上不可读:
$ ls -l /var/spool/cron/
total 8
-rw------- 1 root root 20 Feb 23 16:34 root
-rw------- 1 terdon terdon 22 Feb 23 16:32 terdon
因此,“最安全”的方法是使用用户的 crontab,即您通过crontab -e
.普通用户无法阅读:
$ cat /var/spool/cron/root
cat: /var/spool/cron/root: Permission denied
我建议您首先检查并确保您的 CentOS 上也是这种情况,但我目前无法访问 CentOS 计算机。
答案2
您/etc/cron.daily/
拥有用户(作为第一个字段),因此它可以运行任何用户的 cronjob。 AFAIK 这是唯一的区别。
具有/etc/cron.daily/
备份和部署的优势。/var/spool/cron/crontabs/
(所使用的文件cronttab -e
更容易被覆盖。