以 root 身份运行我的 crontab 作业是否存在安全风险?

use*_*402 10 security linux ubuntu cron

我有一些我正在运行的 cron 作业 - 主要是备份相关的东西。

我不得不像 /etc/apache2/sites/available 等一样备份卡住,这需要 root 访问权限。

我有一些问题:

在无头服务器上运行时:

  1. 脚本在哪个用户下运行(假设我没有在 cron 作业条目中指定用户)?
  2. 是否可以以 root 身份运行备份脚本 - 或者这是否会带来安全问题?

顺便说一句,我的服务器运行的是 Ubuntu 10.0.4 LTS

Ric*_*way 15

如果您已充分保护对脚本的访问并采取了合理的预防措施,那么从根 crontab 运行某些内容通常不会带来安全风险。

但是不要以非 root 用户可以编辑或覆盖的 root 身份运行脚本。这适用于从 cron 以及交互运行的作业。

如果该脚本包含其他文件,则同样适用于它们。

如果有疑问,请始终使用最小权限原则。如果您仍然不确定,您可以随时在论坛和 IRC 中提出具体问题。


(几乎)总是有一种方法可以以非 root 用户身份运行某些东西。如果使用 sudo 将用户限制为特定命令的所有其他方法都失败了,也会限制造成伤害的可能性。

因此,在您提供的备份 /etc/apache2/sites-available 示例中,该文件默认可供任何人读取,因此这意味着它可以访问只能由 root 写入的目标。

你可以通过

  • 创建一个名为 backupadmins 的组(例如)
  • 将目标目录上的组设置为 backupadmins
  • 添加一个名为 backupuser 的用户(例如)
  • 将用户backupuser 添加到backupadmins 组。
  • 使该目录可由 backupadmins 组写入
  • 从备份用户的 crontab 运行 cron 作业。