![允许用户使用 cron 来安排任务安全吗?](https://linux22.com/image/86284/%E5%85%81%E8%AE%B8%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8%20cron%20%E6%9D%A5%E5%AE%89%E6%8E%92%E4%BB%BB%E5%8A%A1%E5%AE%89%E5%85%A8%E5%90%97%EF%BC%9F%20.png)
如果用户被授予安排 cron 作业的权限,即通过在 cron.allow 中列出,这是否会使他们比没有该权限的用户对系统构成更大的“威胁”?
就我而言,我并不担心用户主动恶意 - 更担心错误配置可能会导致更广泛的问题。
据我所知,他们能做的最糟糕的事情就是安排大量频繁重复的资源密集型任务。但由于这些任务将在其用户帐户下运行,因此它们将受到为该用户设置的任何配额和限制的约束。
是对的吗?
答案1
cron 作业可以在“任何”时间运行,即使用户没有登录。这主要是针对恶意用户的担忧。但无论有意还是无意,它确实会让用户消耗更多的 CPU 时间,因此在共享系统上通常被禁止。
答案2
再加上没有技术原因不向用户授予 cron 访问权限,我认为这是一种矫枉过正的做法。我通常为 root 和应用程序服务管理员帐户保留 cron。如果说开发人员想在午夜运行某些东西,我会给他们at
访问权限。我真的不希望一个过分热心的程序员每天晚上对软件存储库运行查询以查看是否有新版本,同时阻塞网络连接并在巨大的文件上运行 awk/sed/grep/perl ,从而使系统崩溃它的膝盖,阻碍了合法的 cron 工作,有时会因为缺乏资源而失败。
我不想听起来像博福赫但是,如果你让用户在系统上疯狂运行,你真的不知道自己会陷入什么境地。他们中的很多人就像孩子一样,需要控制。如果您的用户是执行其他功能的老系统管理员,我不介意给他们更多的自由,但对于开发人员来说,我不会。我看到其中一些人是如何发展。我不想在他们使用完系统后进行房屋清洁,我将负责处理。