【发布时间】:2012-05-23 07:58:14
【问题描述】:
例如,假设我有一个脚本说:
#!/bin/bash
sudo setpci -s 00:02.0 F4.B=00
如何将 root 密码放入脚本中,以便它在读取和执行 sudo 行时接受它作为密码(这样我就不必手动输入)?
【问题讨论】:
例如,假设我有一个脚本说:
#!/bin/bash
sudo setpci -s 00:02.0 F4.B=00
如何将 root 密码放入脚本中,以便它在读取和执行 sudo 行时接受它作为密码(这样我就不必手动输入)?
【问题讨论】:
在 bash 脚本中生成 expect 会话通常是您自动化交互式提示的方式。
例如
expect -c "
spawn sudo setpci -s 00:02.0 F4.B=00
expect -nocase \"password:\" {send \"$PASS\r\"; interact}
"
请注意,在这种情况下,这不是推荐的方法,因为将 root 密码存储在 bash 脚本中是一个巨大安全漏洞。
正确的解决方案是编辑您的 /etc/sudoers/ 以不提示您输入该二进制文件的密码。
#in /etc/sudoers
neohexane ALL=(ALL) NOPASSWD : /usr/bin/setpci
【讨论】:
/etc/sudoers/ 方法。这将是我的建议。