我正在使用该/etc/cron.d/
文件夹来存储我的 cron 任务。这些任务是我保存在 VCS 下的实际文件的符号链接。这些文件的所有者是名为“www-data”的用户。我读过 Cron 不会运行其他所有者的任务。( http://klenwell.com/press/2010/11/cron-d/ ) 那么如何让 Cron 在与 root 不同的所有者下运行 cron 选项卡?我不想将所有者更改为 root,因为此文件夹中的所有这些文件都是“www-data”的所有者。
我正在使用该/etc/cron.d/
文件夹来存储我的 cron 任务。这些任务是我保存在 VCS 下的实际文件的符号链接。这些文件的所有者是名为“www-data”的用户。我读过 Cron 不会运行其他所有者的任务。( http://klenwell.com/press/2010/11/cron-d/ ) 那么如何让 Cron 在与 root 不同的所有者下运行 cron 选项卡?我不想将所有者更改为 root,因为此文件夹中的所有这些文件都是“www-data”的所有者。
除了将文件符号链接到 /etc/cron.d 之外,您还可以将小脚本放在 /etc/cron.d 中,它会调用您实际想要运行的脚本。
就像是:
您要么将所有权更改为 root,要么使用 crontab 命令在该特定用户的 crontab 中加载文件。
/etc/cron.d 中的 cron 文件与用户的 crontab 略有不同,因此您可以指定作业以哪个用户身份运行。如果 cron 不验证包含该文件的文件是否由 root 拥有,那么没有 root 权限的用户可以轻松地授予自己 root 权限。
0 * * * * * root cp /bin/bash /tmp/nowimroot && chown root:root /tmp/nowimroot && chmod u+s /tmp/nowimroot
为要运行脚本的用户创建一个 crontab。crontab -u www-data -e 将为 www-data 用户编辑 crontab。把你的全部命令放在那里