6

たとえば、次のようなスクリプトがあるとします。

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

root パスワードをスクリプトに入力して、sudo 行を読み取って実行するときにパスワードとして受け入れるようにするにはどうすればよいですか (手動で入力する必要はありません)。

4

1 に答える 1

27

通常、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
于 2012-05-15T18:49:10.923 に答える