Os processos estão executando instâncias de binários executáveis. Cada processo, similarmente a cada arquivo, pertence a um determinado usuário. (É um pouco mais complicado porque há vários IDs de usuário para um processo, mas na maioria das vezes são os mesmos.)
Uma linha de terminal (tty) pode ser aberta por qualquer processo a qualquer momento, assim como um processo pode abrir / criar um arquivo, um soquete TCP e assim por diante. Não há nada de especial nos terminais a esse respeito.
É um antigo conceito de nível de usuário que existe um banco de dados utmp / wtmp mantendo o controle dos logins. Os gerenciadores gráficos de login atualizam os registros referentes a todo o login gráfico (faz sentido mais ou menos), e os emuladores de terminal atualizam voluntariamente (ou não) os registros pertencentes à linha do terminal (isso, na minha opinião, como detalhado em < href="https://bugzilla.gnome.org/show_bug.cgi?id=747046"> link , não faz sentido algum. Isso vem dos dias em que os terminais eram terminais reais em vez de emuladores gráficos, com certeza fazia sentido acompanhar quem estava logado de onde.
Na minha opinião, é uma tradição obsoleta e ruim dizer que abrir um emulador de terminal gráfico significa "fazer login" ou que uma entrada de log deve ser criada para janelas / guias de terminal aberto e que who e utilitários semelhantes devem relatar isso.
Utilitários como who imprimem as informações com base nesses arquivos utmp / wtmp mais ou menos adequadamente mantidos, o que é novamente de usabilidade e confiabilidade bastante limitadas.