sudoのマンページから:
-S, --stdin
標準エラーにプロンプトを作成し、端末デバイスを使用する代わりに、標準入力からパスワードを読みます。パスワードの後には改行文字が続きます。
sudo -S
justの代わりに使用する目的は何ですかsudo
?
sudo
基本的に、標準入力からパスワードを読むのは正しいですか?「標準エラーにプロンプトを書き込む」の目的は何ですか?デフォルトでは
sudo
標準出力に書き込まれますか?すべてパスワードの後に改行文字が続くべきですか?
例えば、https://stackoverflow.com/a/39553081/156458、sudo -S true
パスワードはまだ必要です。では、その投稿の元の問題をどのように解決しますか?解決策を探してこのリンクを見つけました。シェルプロファイルでsudoを必要とするスクリプトを実行する必要がありますか?
ありがとうございます。
修正する:
J.Taylorの答えは次のとおりです。
sudo
デフォルトでは、パスワードは標準入力から読み取られず、ターミナルインターフェイスから読み取られます。
実装の観点からどのように理解するかを知りたいです。
プログラムが標準入力から読み取るときに常にバインドされるファイル記述子0から読み取られます。これは正しいですか?
なしで使用するときにsudo
標準入力を使用するのかターミナルを使用するのかわからないのはなぜですか?sudo
-S
プログラム(例えばsudo -S
)は、標準入力の代わりに端末で読み取りをどのように実装できますか?
答え1
sudo
するいいえパスワードを読む標準入力デフォルトでは - 次から始めます。端末インターフェース。を使用すると、sudo -S
次のように他のコマンド/ファイルからパスワードを入力できます。printf "yourpassword\n" | sudo -S nano /etc/apt/sources.list
これは、パスワードを要求せずにsudoにログインするためにシェルスクリプトで使用できますが、シェルから直接これを実行しないように注意する必要があります。これにより、sudoパスワードがシェル履歴に残ります。