为什么 crontab 不想以 root 身份执行作业?

为什么 crontab 不想以 root 身份执行作业?

我正在使用 Ubuntu 14.04 (Trusty) 版本,我的 crontab 出现了问题(在 13.10 之前它可以正常工作)

这是命令行

/usr/lib/cgi-bin/awstats.pl -config=www.skrik.fr -update >/dev/null

如果我以 root 身份在终端中运行它,则不会出现任何错误,一切运行顺利

但如果我添加它sudo crontab-e我明白

0 * * * * root /usr/lib/cgi-bin/awstats.pl -config=www.skrik.fr -update >/dev/null

处理 /etc/awstats/awstats.cloud.skrik.fr.conf 时出错 使用 AWStats 版本 7.2(内部版本 1.992)为配置“/etc/awstats/awstats.cloud.skrik.fr.conf”创建/更新数据库 从日志文件“/var/log/apache2/cloud/access.log”中的数据... 错误:无法打开服务器日志文件“/var/log/apache2/cloud/access.log”:权限被拒绝

当我将其添加到 /etc/crontab 时,我遇到了完全相同的问题

为什么 cron job 不想以 root 身份工作?

非常感谢你的帮助

答案1

解决方案

问题如下:

/etc/cron.d 上设置了一个 awstats 作业,该作业与 www-data 一起运行。这个作业导致了问题,因为 www-data 无法访问 /var/log/apache2

首先你需要:

chmod o+rx /var/log/apache2

接下来你需要改变/etc/logrotate.d/apache2

create 640 root adm

进入:

create 644 root adm

重新启动服务。

我的 /etc/crontab 运行正常。但我更喜欢使用非 root 帐户运行脚本。

相关内容