Qualquer programa pode alocar um pseudo-terminal, não precisa envolver um login. É apenas outra forma de comunicação entre processos, que é útil se o aplicativo precisar emular um terminal.
Um exemplo é o programa Expect
. Ele aloca um pseudo-terminal quando gera um programa, para que o programa aja como se estivesse sendo executado interativamente por um usuário.
Como para aparecer na saída who
, o programa precisa ser set-UID para root
ou set-GID para utmp
para poder atualizar o arquivo /var/run/utmp
que lista qual usuário está logado em cada terminal. Isso geralmente é feito apenas para programas que criam logins interativos, como login
, gnome-terminal, or
xterm '.