`sudo`はどのようにTTYを探しますか?

`sudo`はどのようにTTYを探しますか?

Bash 4で次のコマンドを実行すると、sudoパスワードの入力を求められます。

$ echo '' | sudo true
[sudo] password for mike:

(パスワードの送信には興味がありませんsudo。これはトラブルシューティング中に見つかった動作を示しています。)

私が理解しているように、TTY検出は標準入力のファイル記述子をチェックすることによって機能します。このttyプログラムは以下をサポートします。

$ tty
/dev/pts/26
$ echo '' | tty
not a tty

...しかし、sudo他のメカニズムが使用されているようです。setsid望む効果があるので、私の考えにはこれがセッションに関連しているようです。

$ setsid sudo true
sudo: no tty present and no askpass program specified

だからあなたは何のために忙しいですかsudo

ベストアンサー1

/dev/ttyJeff Schallerはマクロを使用して述べたように開き_PATH_TTY、制御端末が何であるかに関係なく(存在する場合)制御端末へのアクセスを提供します。バラより現在の制御端末と `/dev/tty`の関係は何ですか?もっと学ぶ。

おすすめ記事