在 /etc/cron.daily/ 中添加脚本或在 crontab(-e) 中编辑脚本有什么区别?

在 /etc/cron.daily/ 中添加脚本或在 crontab(-e) 中编辑脚本有什么区别?

有多种选项 - 使用 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更容易被覆盖。

相关内容