0

パスワードを要求せずに sudo コマンドを実行するスクリプトが必要です。次のスクリプトでは、奇妙な bash のstdin動作があります。

username@username-laptop:~$ sudo -Si | echo "password" 
password
root@username-laptop:~# exit
username@username-laptop:~$ sudo -Si | echo "password"
password
[sudo] password for rootname:

(パスワードは私のマシンのルートパスワードです)

パスワードが最初に要求されず、2 回目 (そして常にその後) に要求されたのはなぜですか? stdinまた、bash での動作がわかりません。コードのどこにエラーがありますか?

コマンドにルートパスワードを直接入力するのは非常に悪い考えであることはわかっていますが、正しく実行するにはそれが必要です。

4

1 に答える 1

0

多分あなたは試してみるべきです:

echo "Password" | sudo -Si

それ以外の:

sudo -Si | echo "Password"

最初のコマンドの出力 (「|」の前) は、2 番目のコマンドへの入力として使用されます。

最初のコマンドは画面出力を行うことができませんが、2 番目のコマンドは、プログラミングのトリックを行わない限り、キーボード入力を受け取ることができないことに注意してください...

于 2013-09-27T20:04:08.520 に答える