如何在 Ubuntu 16.04 中的 cronjobs 中运行 SUDO... 命令?

如何在 Ubuntu 16.04 中的 cronjobs 中运行 SUDO... 命令?

有些终端命令只能以 root 用户身份运行。如果我们尝试在不执行任何命令的情况下执行它们,sudo关键字,他们失败了Permission denied错误。一个例子是在特定位置创建目录/文件夹的命令。

我需要在我的 Ubuntu 16.04 中将这样的命令作为 cron 任务的一部分来运行。通常我可以使用以下命令来运行该命令sudo在终端中键入关键字,然后系统会提示输入root用户的密码,然后命令就会成功执行。

但是现在我必须在我的 cron 作业中输入此命令crontab文件,我该怎么做?如何将这样的命令作为 cronjob 的一部分来运行?

答案1

只需crontab -e运行用户。这将使用以下命令运行你的命令sudo权限,前面无需添加 。

但您无法登录用户,您需要将您的工作作为 cron 作业执行,您应该在 cron 文件中指定完整路径:

 $ * * * * * /usr/bin/sudo /your/command

您还可以在文件NOPASSWD中的命令前面添加/etc/sudoers以运行命令但没有密码。

答案2

另一个选择是将其放在系统范围的 crontab 中/etc/crontab(或文件中/etc/cron.d),您可以在其中指定运行每个任务的用户:

* * * * * root mkdir /foo/bar

相关内容