使用sudo与密码作为参数

我想以我的密码作为参数运行sudo,以便我可以将它用于脚本。 我试过了

sudo -S mypassword execute_command 

但没有任何成功。 有什么build议么?

-S开关使sudo从STDIN读取密码。 这意味着你可以做

 echo mypassword | sudo -S command 

把密码传给sudo

然而,别人的build议,不涉及传递密码作为命令的一部分,例如检查用户是否是root,可能出于安全原因

您可以为脚本设置s位,以便它不需要sudo并以root用户身份运行(并且不需要在脚本中编写root密码):

 sudo chmod +s myscript 
 echo -e "YOURPASSWORD\n" | sudo -S yourcommand 

一个选项是使用-A标志来sudo。 这运行一个程序来要求密码。 而不是问,你可以有一个脚本,只是吐出密码,所以程序可以继续。

 # Make sure only root can run our script if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi