Visudo所有密码减less访问脚本(Visudo +克朗)

我希望我的用户'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