Login do processo vs login do usuário

0

Em um sistema Ubuntu 14.04, who tem a seguinte saída:

user1   :0           2016-05-02 14:49 (:0)
user1   pts/4        2016-05-02 15:10 (:0)

Portanto, aparentemente apenas o pts/4 é usado. Mas, por exemplo, sudo fuser /dev/pts/1 produz como saída 2573 , que é cupsd . Então, esse terminal também é usado por um processo.

Para usar um terminal, é preciso fazer um login. user1 fez o login;

  • processos como cups também fizeram login?
  • Se sim, qual é a diferença entre um login normal de usuário e um login processo ? Não aparece em who .
por BowPark 02.05.2016 / 23:58

1 resposta

1

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 '.

    
por 03.05.2016 / 00:10