我希望我的用户'dave'能够在不input密码的情况下运行bash脚本,因此脚本可以使用crontab运行? 对于所有其他活动,我希望这个用户被要求input密码(默认)。 我知道这可以通过visudo完成,但我无法得到它的工作。 错误的语法也许?
我的Visudo条目:
dave ALL=(ALL) ALL dave ALL=NOPASSWD: /home/dave/thescript.sh
这在命令行工作,我可以执行它,而无需input密码。 但是cron正在[sudo] password for dave:
返回[sudo] password for dave:
我的用户'dave'的crontab是:
0 * * * * /home/dave/thescript.sh
非常感谢,
罗斯
sudoers
入口dave ALL=NOPASSWD: /home/dave/thescript.sh
让dave执行sudo /home/dave/thescript.sh
而不input密码。 它没有说任何关于从脚本使用sudo
; sudo
不关心脚本,如果有的话,调用它。
如果整个脚本应该以root身份运行,那么使用crontab中的sudo /home/dave/thescript.sh
来调用它。 但是,为什么不简单地把脚本放在root
的crontab中呢?
否则,如果脚本包含一行sudo /path/to/mycommand arguments
,则在sudoers文件中放入dave ALL=NOPASSWD: /path/to/mycommand arguments
。 无论dave从哪里运行mycommand
,这都将适用。
上面的条目允许dave通过sudo
运行/home/dave/thescript.sh
而不必input密码。
你不是通过sudo
运行thescript.sh
。
你将不得不添加一个类似的条目,脚本试图通过sudo运行到你的sudoers文件,例如
dave ALL=NOPASSWD: /path/to/special/command