我有一些我正在运行的cron作业 – 主要是备份相关的东西。
我不得不像/ etc / apache2 / sites / available等那样需要root权限来进行备份。
我有几个问题:
在无头服务器上运行时:
顺便说一下,我的服务器运行Ubuntu 10.0.4 LTS
如果您已经充分获得脚本的访问权限并做出明智的预防措施,那么从root crontab运行某些内容通常不会带来安全风险。
但是不要以超级用户可以编辑或覆盖的超级用户身份运行脚本。 这适用于从cron运行的作业以及交互式。
如果该脚本包含其他文件也适用于他们。
如果有疑问,总是使用最小特权的原则。 如果您仍然不确定,您可以随时在论坛和IRC上提出具体的问题。
总是有一种以非root用户身份运行的方式。 如果一切都失败了使用sudo来限制用户的具体命令也限制了潜在的伤害。
因此,对于您备份/ etc / apache2 / sites-available所提供的示例,该文件默认为任何人都可读,所以这意味着它只能访问可由root写入的目标。
你可以通过
这取决于脚本正在做什么。 如果他们支持的东西,那么他们可能是根源 – 如果恶意用户覆盖这些脚本,你可能会遇到更大的问题。
如果他们做愚蠢的事情,如执行目录中find的文件,或任何可能受到networking目录内容影响的东西,那么你可能需要寻找替代品。
世界各地数以百万计的cron工作每天都以root身份运行(或者任何设定的运行周期)。
重要的是设置适当的权限。 如果你运行的是每个人都可写的东西,那么恶意的用户或进程可能会改变它正在做的事情。
一般来说,Cron作业由crontab的所有者运行。 例如,用户crontab可能位于/var/spool/cron/crontabs/username中。 位于/etc/crontab , /etc/crontab cron.d /etc/crontab或/etc/cron.hourly (每日,每周,每月)的Cronjobs将以/etc/crontab /etc/cron.d/运行。 对于这些crontab文件,所有权和权限也是正确的。