Como verificar se um usuário está logado no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar quais usuários estão atualmente logados em um sistema Linux. Você explorará comandos fundamentais como who para listar os usuários logados e w para obter informações mais detalhadas sobre suas sessões e atividades.

Ao final deste laboratório, você será capaz de identificar rapidamente usuários ativos em um sistema Linux e entender informações básicas sobre suas sessões de login, incluindo como inspecionar os registros de login em /var/run/utmp.

Listar usuários logados com who

Nesta etapa, você aprenderá como listar os usuários atualmente logados no sistema usando o comando who. Este é um comando fundamental tanto para administradores de sistema quanto para usuários, para ver quem está ativo no sistema.

O comando who exibe informações sobre os usuários que estão atualmente logados. Essa informação normalmente inclui o nome de usuário, a linha do terminal que eles estão usando, a hora em que fizeram login e o host remoto de onde fizeram login (se aplicável).

Vamos experimentar. Abra seu terminal, se ele ainda não estiver aberto. Você pode encontrar o ícone do Xfce Terminal no lado esquerdo da sua área de trabalho.

Digite o seguinte comando e pressione Enter:

who

Você deve ver uma saída semelhante a esta:

labex    :0           <timestamp> (:0)

Vamos analisar a saída:

  • labex: Este é o nome de usuário do usuário logado. Neste ambiente LabEx, o usuário padrão é labex.
  • :0: Isso indica a linha do terminal ou display que está sendo usado. :0 normalmente se refere ao display gráfico principal.
  • <timestamp>: Isso mostra a data e hora em que o usuário fez login. O formato exato e o conteúdo do timestamp podem variar ligeiramente.
  • (:0): Isso geralmente fornece informações adicionais sobre a sessão de login, neste caso, confirmando o display.

O comando who é simples, mas poderoso para verificar rapidamente quem está usando o sistema. É um bom primeiro passo para entender a atividade do usuário.

Lembre-se, a prática é fundamental! Tente executar o comando algumas vezes para se familiarizar com ele.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar sessões de usuário com o comando w

Nesta etapa, você explorará o comando w, que fornece informações mais detalhadas sobre os usuários atualmente logados e o que eles estão fazendo. Enquanto who oferece uma lista rápida, w oferece um instantâneo da atividade atual do sistema relacionada às sessões de usuário.

O comando w mostra quem está logado e o que eles estão fazendo. É uma ferramenta útil para monitorar o uso do sistema e identificar processos ativos associados a cada usuário.

Vamos executar o comando w no seu terminal. Se você o fechou, abra o Xfce Terminal novamente.

Digite o seguinte comando e pressione Enter:

w

Você deve ver uma saída semelhante a esta:

 <timestamp> up <uptime>,  <users> users,  load average: <load_avg>
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
labex    :0       :0               <login_time>   <idle_time>   <jcpu_time>   <pcpu_time> w

Vamos analisar as diferentes partes da saída:

  • A primeira linha fornece um resumo:
    • <timestamp>: A hora atual.
    • up <uptime>: Há quanto tempo o sistema está em execução desde a última inicialização.
    • <users> users: O número de usuários atualmente logados.
    • load average: <load_avg>: A média de carga do sistema nos últimos 1, 5 e 15 minutos. Isso indica o número médio de processos esperando para serem executados.
  • A linha de cabeçalho (USER, TTY, FROM, LOGIN@, IDLE, JCPU, PCPU, WHAT) descreve as colunas que seguem para cada usuário logado.
  • USER: O nome de usuário.
  • TTY: A linha do terminal que o usuário está usando.
  • FROM: O host remoto de onde o usuário fez login (se aplicável). Para uma sessão gráfica local como esta, geralmente mostra :0.
  • LOGIN@: A hora em que o usuário fez login.
  • IDLE: O tempo ocioso do terminal.
  • JCPU: O tempo usado por todos os processos anexados ao tty.
  • PCPU: O tempo usado pelo processo atual.
  • WHAT: A linha de comando do processo atual do usuário. Neste caso, mostra w porque esse é o comando que você acabou de executar.

O comando w oferece uma visão mais dinâmica em comparação com who, mostrando não apenas quem está logado, mas também o que eles estão fazendo ativamente.

Experimente o comando w. Você o achará útil para avaliar rapidamente a atividade do sistema.

Clique em Continuar para passar para a próxima etapa.

Inspecionar registros de login em /var/run/utmp

Nesta etapa, você aprenderá sobre o arquivo /var/run/utmp e como comandos como who e w obtêm suas informações dele. Este arquivo é uma parte crucial de como o Linux rastreia quem está logado no sistema.

O arquivo /var/run/utmp é um arquivo binário que contém informações sobre os usuários atualmente logados no sistema. Ele é constantemente atualizado à medida que os usuários fazem login e logout. Comandos como who, w e users leem este arquivo para exibir informações de login atuais.

Como /var/run/utmp é um arquivo binário, você não pode simplesmente visualizar seu conteúdo com comandos como cat ou less, como faria com um arquivo de texto. Fazer isso resultaria em caracteres ilegíveis.

Vamos tentar visualizá-lo com cat para ver o que acontece (e entender por que não fazemos isso):

cat /var/run/utmp

Você verá muitos caracteres embaralhados, o que é esperado para um arquivo binário.

<binary_output>

Para ler o conteúdo de /var/run/utmp em um formato legível por humanos, você normalmente usa comandos projetados para analisar este arquivo, como who ou w, que você usou nas etapas anteriores.

Outro comando que lê e exibe especificamente o conteúdo de /var/run/utmp é utmpdump. Este comando é útil para depurar ou examinar os dados brutos no arquivo.

Vamos usar utmpdump para visualizar o conteúdo de /var/run/utmp.

utmpdump /var/run/utmp

Você deve ver uma saída estruturada e legível, mostrando registros para cada sessão de login. A saída exata dependerá do estado atual do sistema, mas terá uma aparência semelhante a esta:

Utmp dump of /var/run/utmp
[<type>] [<pid>] [<line>] [<id>] [<user>] [<host>] [<exit>] [<session>] [<tv_sec>] [<tv_usec>] [<addr_v6>]
...
[7] [ <pid> ] [ :0 ] [ :0 ] [ labex  ] [ :0 ] [  0,  0 ] [ <session_id> ] [ <timestamp> ] [ <usec> ] [ <ipv6_address> ]
...

A saída mostra vários campos para cada entrada no arquivo utmp, incluindo o tipo de entrada (como login de usuário), ID do processo, linha do terminal, nome de usuário, host, hora do login e muito mais.

Compreender /var/run/utmp ajuda você a apreciar como o Linux acompanha as sessões de usuário e como comandos como who e w funcionam por baixo dos panos.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar quais usuários estão atualmente logados em um sistema Linux. Você começou usando o comando who, que fornece uma lista básica de usuários logados, seu terminal, hora de login e origem. Este comando é uma ferramenta fundamental para identificar rapidamente usuários ativos.

Após o comando who, você explorou o comando w. Embora os detalhes completos do comando w não tenham sido fornecidos no trecho, ele é apresentado como uma ferramenta que oferece informações mais detalhadas sobre os usuários logados e suas atividades atuais, indo além da lista simples fornecida por who.