it-mure.jp.net

エコー "" | Sudo-nの代替としてのSudo-S

私はDebianLennyを使用しています。残念ながら、工場出荷時のSudoパッケージには、Sudoバージョン1.7に付属する-nオプションが含まれていません。 「Sudoがパスワードを要求した場合、プロンプトを表示するのではなく、すぐに失敗することを好む」と指定する方法が本当に必要です。この代替手段は機能しますか?

echo "" | Sudo -S -u lalala command 
3
zedoo

コマンドは、標準入力からも読み取ることになります( Chris Acheson として)。標準入力を端末からリダイレクトする方がよいでしょう。

echo | Sudo -S -u lalala sh -c 'command </dev/tty'

これは特定のコマンドでのみ機能します。パスワードが必要な場合、Sudoは予想どおり、やや醜い方法で失敗します。ただし、そうでない場合、改行はSudoで実行しているコマンドにパイプされます。

猫はうまくいきます:

[email protected]:~$ echo "" | Sudo -S -u cacheson cat file.txt 
text file

vimはしません:

[email protected]:~$ echo "" | Sudo -S -u cacheson vim file.txt 
Vim: Warning: Input is not from a terminal
Vim: Error reading input, exiting...

Vim: Finished.
2
Chris Acheson