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/tty
Jeff Schaller가 매크로를 사용하여 언급한 것처럼 열리며 _PATH_TTY
, 제어 터미널이 무엇인지에 관계없이(있는 경우) 제어 터미널에 대한 액세스를 제공합니다. 바라보다현재 제어 터미널과 `/dev/tty` 사이의 관계는 무엇입니까?더 알아보기.