Executando o seguinte comando no Bash 4, sudo
solicita uma senha:
$ echo '' | sudo true
[sudo] password for mike:
(Não estou interessado em canalizar minha senha para sudo
; esta é uma demonstração de um comportamento que encontrei durante a solução de problemas.)
Tenho entendido que a detecção de TTY ocorre por meio da inspeção de
o descritor de arquivo para padrão. O programa tty
suporta isso:
$ tty
/dev/pts/26
$ echo '' | tty
not a tty
... mas sudo
parece estar usando algum outro mecanismo. setsid
tem o efeito pretendido, então meu palpite é que isso está de alguma forma ligado à sessão.
$ setsid sudo true
sudo: no tty present and no askpass program specified
Então, o que é sudo
?