por que o btmp não está mostrando o nome de usuário dos usuários logados?

0

Estou tentando comparar a saída dos comandos btmp e who -a .

Não sei por quê, mas btmp file atualmente não está exibindo o nome de usuário, mas está exibindo UNKNOWN no campo nome de usuário. Eu sou (username: debian) logado naquela sessão.

Por favor, observe a saída abaixo:

virt00# who -a
           system boot  2016-03-06 19:36
           run-level 5  2016-03-06 19:36
debian   - tty1         2016-03-06 19:36 00:33        1006
debian   + pts/0        2016-03-06 19:43   .          1037 (192.168.56.1)

virt00# last -f /var/log/btmp | grep still
UNKNOWN  tty1                          Sat Feb 20 16:24   still logged in
virt00#

Poderia, por favor, explicar por que existe uma diferença entre esses dois e por que eu fiz o login via SSH e há mais uma sessão sendo executada na VM?

Obrigado.

    
por rɑːdʒɑ 21.03.2016 / 10:24

2 respostas

1

Isso porque who -a nunca lê /var/log/btmp , who/var/run/utmp e mostra usuário (s) atualmente logado (s).

Por outro lado, /var/log/btmp armazena as tentativas de login com falha.

Eu reproduzi a situação, eu fiz:

  • Foi para tty5 (pode ser qualquer tty )

  • Inseriu um usuário que não existe no sistema

  • Dada uma senha aleatória

  • O prompt de login está de volta mostrando a senha errada

  • Mas há uma entrada em /var/log/btmp as

    UNKNOWN  tty5  Mon Mar 21 16:16   still logged in 
    

    Depois de um tempo, isso se tornou:

    UNKNOWN  tty5  Mon Mar 21 16:16    gone - no logout
    
por 21.03.2016 / 11:02
1

O arquivo /var/log/btmp mantém o controle de tentativas de login com falha . Se todos estiverem logados sem problemas, não há nada para mostrar.

Ao testar o recurso, só consigo ver "UNKNOWN" logado (no Debian 7) usando telnet (não ssh) e se eu der um nome de usuário desconhecido no prompt, causando uma falha. Isso é semelhante ao cenário mostrado em um segmento do Ubuntu sshd não adiciona ao / var / log / btmp . Conectar com o ssh nunca gera uma falha nesta máquina.

Uma rápida leitura do código-fonte não mostre nenhum local em que last forneceria UNKNOWN por si só. Provavelmente é do aplicativo que criou o registro em /var/log/btmp .

Na sua configuração, parece que o processo de login não foi capaz de obter o nome de usuário atual e registrou que como um problema em /var/log/btmp . Como utmp , é possível ter entradas obsoletas em btmp que não são excluídas (o programa que cria as entradas deve removê-las - isso é não feito automaticamente). Seu exemplo mostra uma entrada com um mês de idade (20 de fevereiro) e (já que você está logado como um usuário conhecido no mesmo tty) não está relacionado ao seu login atual - e é de antes da hora a máquina foi inicializada mais recentemente (3 de março).

Leitura adicional:

por 21.03.2016 / 10:31