我想用我的密码作为参数运行sudo,以便我可以将它用于脚本。我试过了
sudo -S mypassword execute_command
但没有任何成功。有什么建议吗?
答案 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