当一个bash脚本运行自动输入密码[复制](Automatically input a passwo

2019-07-29 09:52发布

这个问题已经在这里有一个答案:

  • 如何给一个在bash提示命令提供密码? 7个回答

例如,说,如果我有一个剧本说:

#!/bin/bash
sudo setpci -s 00:02.0 F4.B=00

如何把root密码为脚本,以便它接受它作为密码时,它读取并执行sudo的线(所以我不必手动输入)?

Answer 1:

产卵的期待您的bash脚本中的会话通常是你如何自动化交互提示。

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


文章来源: Automatically input a password when a bash script is run [duplicate]