crontab 的权限为什么会这样工作?

crontab 的权限为什么会这样工作?

crontab 可执行文件归 root 所有,并设置了 setuid 位:
-rwxr-sr-x 1 root crontab 35984 Mar 9 2013 /usr/bin/crontab

当普通用户运行 时crontab -e,此可执行文件会创建一个临时文件,更新它,然后将其移动到/var/spool/cron/crontabs并以用户的名称命名。当他们运行 时crontab -l,他们会以 root 身份读取这些文件。

普通用户不允许直接读取/写入他们的 crontab 文件:该/var/spool/cron/crontabs目录没有为“其他”部分设置任何权限,而实际文件归用户所有并具有“所有者读/写”权限。

为什么会这样?为什么不呢?例如:
1. 为普通用户提供/var/spool/cron/crontabs目录的读取/执行权限?
2. 将这些文件创建在用户可以直接读取和写入的其他地方?

我认为这与 cron.allow/deny 机制有关,但强制执行该机制的逻辑在 内crond,普通用户无法触及。这些文件的权限是600,因此用户无法修改其他用户的文件(除非他们希望他们这样做,在这种情况下他们可以修改chmod他们的文件)。

那么周围的权限为什么要crontab这样设计呢?

相关内容