使用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