如何以root身份运行Bash脚本而没有密码?

可能重复:
如何在不需要密码的情况下在脚本中使用sudo?

我想以root身份运行bash脚本,没有密码提示。

我没有运气试过visudo(your_username ALL =(ALL)NOPASSWD:/ path / to / your / script)。

在我看来,这是唯一的出路,还有其他吗?

每个Linux都有一个非常巧妙的技巧,可以让你这样做。 它被称为SetUI位。

请记住,您需要在此文件中严格锁定权限才能确保安全。

使root和group root拥有该文件:

 sudo chown root.root  

现在设置SetUID位,使其可执行,并且只能由root写入:

 sudo chmod 4755  

请记住,如果此脚本允许任何输入或编辑文件,这也将以root身份完成。

SetUID位使脚本或二进制文件始终作为文件/二进制文件的所有者运行,这样的二进制文件的示例是“passwd”。

这里有一个使用sudoers的解决方案就是你可以使用的一个例子。 在sudoers文件的末尾添加这两行。 您可以使用visudo编辑sudoers文件。

 Cmnd_Alias CMDS = /path/to/your/script  ALL=NOPASSWD: CMDS 

现在只需将sudo放在脚本前面,它应该在不需要密码的情况下运行。