我想用我的密码作为参数运行 sudo,以便我可以将它用于脚本。我试过了
sudo -S mypassword execute_command
但没有任何成功。有什么建议么?
-S 开关使 sudo 从 STDIN 读取密码。这意味着你可以做
echo mypassword | sudo -S command
将密码传递给 sudo
但是,出于安全原因,其他人的建议不涉及将密码作为命令的一部分传递,例如检查用户是否为 root,这可能是更好的主意
您可以s
为您的脚本设置该位,以便它不需要sudo
并以 root 身份运行(并且您不需要在脚本中编写您的 root 密码):
sudo chmod +s myscript
echo -e "YOURPASSWORD\n" | sudo -S yourcommand
一种选择是对 sudo 使用 -A 标志。这会运行一个程序来询问密码。而不是询问,您可以有一个只吐出密码的脚本,以便程序可以继续。
# 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