使用带密码的sudo作为参数

ccm*_*man 66 linux bash sudo

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

sudo -S mypassword execute_command
Run Code Online (Sandbox Code Playgroud)

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

sto*_*m92 148

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

echo mypassword | sudo -S command
Run Code Online (Sandbox Code Playgroud)

将密码传递给sudo

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


per*_*eal 45

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

sudo chmod +s myscript
Run Code Online (Sandbox Code Playgroud)

  • 请注意,大多数操作系统会忽略此标志以解释脚本文件.这对二进制文件很有效. (4认同)

mat*_*tei 23

echo -e "YOURPASSWORD\n" | sudo -S yourcommand
Run Code Online (Sandbox Code Playgroud)

  • @Bhathiya 根本不使用“引号”,例如: echo -e "YOURPASSWORD\n" | sudo -S ls -l /root (2认同)