![为什么不允许所有用户使用 crontab 安排作业?](https://linux22.com/image/141729/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%8D%E5%85%81%E8%AE%B8%E6%89%80%E6%9C%89%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%20crontab%20%E5%AE%89%E6%8E%92%E4%BD%9C%E4%B8%9A%EF%BC%9F%20.png)
通过设置 /etc/cron.allow 和/或 /etc/cron.deny 可以限制允许哪些用户使用 crontab 来安排 cron 作业以该用户身份运行。至少在我的办公室,我们的 SA 默认拒绝所有非 root 用户使用 crontab。
我的问题是为什么这是一个有用的默认行为?以用户身份安排作业似乎是一个有用的功能,特别是因为它可以允许我为我负责的程序配置维护步骤(并且可以登录到管理用户组),而无需请求/需要 sudo 权限;从而限制谁需要获得更高的权限。
所以我想知道为什么 crontabs 通常不可供所有用户使用?允许给定用户运行 crontab 会带来什么风险或安全威胁?它似乎不应该导致提升权限的可能性,因为 cron 作业将以安排它的用户身份运行。我想它可以通过每分钟启动一个程序来故意消耗资源,但我不明白为什么这会比传统的叉子炸弹更具威胁,因为传统的叉子炸弹已经有了适当的保护措施。
那么阻止用户使用 crontab 调度任务的动机是什么?
答案1
一般来说,安全性的想法是将表面积减少到仅需要所需的功能,即关闭所有功能并仅重新打开所需的功能。至于可能出错的地方......除了错误和管理错误之外没有太多,所以只要管理员知道他们就可以将其添加到要密切关注的事情列表中。