たとえば、次のようなスクリプトがあるとします。
#!/bin/bash
sudo setpci -s 00:02.0 F4.B=00
root パスワードをスクリプトに入力して、sudo 行を読み取って実行するときにパスワードとして受け入れるようにするにはどうすればよいですか (手動で入力する必要はありません)。
通常、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