有些终端命令只能以 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