Não sei se você encontrará alguma definição precisa na qual todos concordem. Talvez apenas " /bin/login
ou equivalente". Todos devem pelo menos concordar que su
não é um login, já que ele não substitui o login existente no terminal, e uma das características definidoras de um login é que apenas uma pessoa por vez está logada qualquer terminal.
Minha definição, que provavelmente será contestada, é que "log in" significa iniciar uma nova sessão, em um terminal (ou display X) que atualmente não tem ninguém usando. Mas e quando você cria um novo terminal? Lançar um xterm não parece logar mesmo que ele crie um novo tty, porque ele não pede autenticação (você foi autenticado no início da sessão X, ou mais cedo se você usou startx
.
Iniciar uma nova conexão ssh, por outro lado, é definitivamente muito semelhante a um login, mesmo quando não está configurado para usar /bin/login
. A menos que você especifique um comando para executar no controle remoto em vez de um shell interativo - uma operação que requer autenticação, mas não parece exatamente um "login".
A pergunta original que você vincula é mais fácil de responder porque se trata de algo concreto (o comando who
), em vez da questão filosófica do que significa "efetuar login". A resposta precisa é que who
informa o conteúdo do arquivo utmp
. Se você quiser saber se uma ação específica (como su
ou xterm
ou ssh localhost -l root
) registrará uma entrada em utmp
, a resposta será "depende". xterm
tem opções -ut
e +ut
para controlar se o terminal será adicionado a utmp
.
Em screen
, você pode alternar a entrada utmp
do tty atual com Ctrl A seguido por L . O L significa login.
Para o ssh, não vejo nenhuma opção dedicada. Após alguns experimentos, parece que você obtém uma entrada utmp
se criar um tty, mesmo se você executar um comando não interativo sobre ele ( ssh -t localhost w
mostra o w
em sua própria listagem).