使用带密码的sudo作为参数

时间:2012-08-14 15:05:49

标签: linux bash sudo

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

sudo -S mypassword execute_command

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

5 个答案:

答案 0 :(得分:139)

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

echo mypassword | sudo -S command

将密码传递给sudo

然而,其他人的建议不涉及将密码作为命令的一部分传递,例如检查用户是否为root,这可能是出于安全原因更好的想法

答案 1 :(得分:43)

您可以为脚本设置s位,使其不需要sudo并以root身份运行(并且您不需要在脚本中写入root密码):

sudo chmod +s myscript

答案 2 :(得分:22)

echo -e "YOURPASSWORD\n" | sudo -S yourcommand

答案 3 :(得分:2)

一种选择是使用-A标志来sudo。这会运行一个程序来询问密码。而不是问,你可以有一个只吐出密码的脚本,以便程序可以继续。

答案 4 :(得分:-4)

# 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