Monitoramento de usuários ativos e logins: comandos who
, w
, last
1. Por que é importante monitorar os usuários?
O Linux, assim como qualquer outro servidor (ou até aquela caixinha malvada com sites), permite que vários usuários trabalhem ao mesmo tempo. Mas e se o teu servidor for invadido? Ou algum colega mal-intencionado decidir "sem querer" apagar arquivos importantes de madrugada? Monitorar a atividade dos usuários ajuda a gente a entender quem, quando e de onde acessou o sistema, além de quais processos eles estavam executando. É tipo uma câmera de segurança, mas para o teu servidor.
Ferramentas principais de monitoramento
Para avaliar a atividade dos usuários no servidor, o Linux oferece três comandos chave:
who
— mostra os usuários atualmente conectados ao sistema.w
— dá um pouco mais de detalhes: o que os usuários estão fazendo e a carga no sistema.last
— fornece o histórico de logins no sistema.
Cada um desses comandos tem suas particularidades e é útil em diferentes cenários. Vamos analisar eles com exemplos.
2. Comando who
O comando who
mostra a lista dos usuários que estão logados no momento. É como um "livro de registro" onde você pode dar uma olhada e ver quem está no servidor agora.
who
Exemplo de saída do comando:
user1 pts/0 2023-10-20 09:10 (192.168.1.100)
root pts/1 2023-10-20 09:15 (192.168.1.101)
O que vemos aqui:
- Nome do usuário
user1
,root
. - O terminal pelo qual eles se conectaram
pts/0
,pts/1
. - Horário do login
2023-10-20 09:10
. - De onde veio a conexão
192.168.1.100
.
Flags para who
:
who -a
: Mostra também dados do sistema, como o tempo de inicialização, processos ativos e usuários.who am i
: Mostra somente as informações do usuário que executou o comando.
3. Comando w
Se o who
só registra quem fez login, o w
dá mais informações - ele fala o que o usuário está fazendo no momento. Isso é útil pra entender se ele tá fazendo algo útil ou algo que precisa parar imediatamente.
w
Exemplo de saída:
10:20:42 up 1 day, 5:12, 2 users, load average: 0.00, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
user1 pts/0 192.168.1.100 09:10 1:00 0.01s 0.01s nano app.py
root pts/1 192.168.1.101 09:15 2:00 0.02s 0.02s htop
O que tá rolando aqui:
- A linha de cima mostra informações do sistema: hora atual, tempo de atividade do servidor, número de usuários e a carga do sistema
load average
. - A tabela mostra:
- Nome do usuário
user1
,root
. - O terminal conectado pelo usuário
pts/0
,pts/1
. - O endereço IP do usuário
192.168.1.100
. - A hora que ele fez login no sistema
09:10
. - Tempo ocioso
IDLE
. - O que o usuário tá fazendo agora
WHAT
, tipo editando o arquivoapp.py
usando onano
.
- Nome do usuário
Opções pro w
:
w -h
: Remove os cabeçalhos da tabela.w username
: Mostra a info só de um usuário específico.
4. Comando last
Se o who
e o w
falam sobre o presente, o last
permite dar uma olhada no passado. Ele exibe o histórico de todos os logins no sistema. Este comando lê o arquivo /var/log/wtmp
, onde todos os logins de usuários são registrados.
last
Exemplo de saída:
user1 pts/0 192.168.1.100 Sex Out 20 09:10 - 09:30 (00:20)
root pts/1 192.168.1.101 Sex Out 20 09:15 - down (00:15)
O que vemos aqui:
- Nome do usuário
user1
,root
. - Terminal
pts/0
,pts/1
. - Endereço IP ou nome do host
192.168.1.100
,192.168.1.101
. - Hora de login
Sex Out 20 09:10
. - Hora de logout
09:30
e tempo total da sessão00:20
.
Opções para last
:
last -n 10
: Exibe apenas os últimos 10 registros.last username
: Histórico de logins para um usuário específico.last reboot
: Mostra quando o servidor foi reiniciado.
5. Exemplo prático: análise de atividade de usuários
Vamos imaginar que você quer saber quem estava trabalhando no servidor à noite, pra entender se aconteceu algo suspeito. Vamos começar verificando os usuários atuais:
who
Agora vamos checar o que eles estão fazendo:
w
Se você achar algo estranho (tipo um processo desconhecido), precisa verificar quem fez login à noite. Pra isso, usamos:
last
Vamos olhar os registros de um usuário específico que chamou sua atenção:
last user1
Se você notar algo anormal, tipo login de um IP desconhecido, é hora de tomar uma atitude: restringir acesso, ativar autenticação em dois fatores ou bloquear o usuário.
6. Características e erros típicos
Ao trabalhar com comandos de monitoramento, é importante lembrar que:
O arquivo de logs pode ser limpo. Se alguém apagou maliciosamente os registros em
/var/log/wtmp
, o comandolast
não mostrará nada. Esse é um dos motivos pelos quais é importante fazer backup regular dos logs ou enviá-los para um servidor remoto.Facilitando a interpretação da saída. Às vezes, a saída dos comandos pode ser sobrecarregada (por exemplo, se muitos usuários estão conectados). Use filtros como
grep
para encontrar as informações importantes:last | grep user1
Dependência das configurações do sistema. Alguns sistemas podem não registrar logins se isso for desativado nas configurações. Certifique-se de que
/var/log/wtmp
está sendo atualizado regularmente.
Como aplicar esse conhecimento na prática?
- Administração de servidores. Por exemplo, você é o administrador de uma empresa e precisa monitorar a segurança do sistema para garantir que ninguém quebre tudo acidentalmente ou intencionalmente.
- Detecção de ameaças. Ferramentas de monitoramento ajudam a identificar tentativas de acesso não autorizado.
- Auditoria de sistema. Ao verificar servidores para cumprir padrões de segurança, esses comandos são frequentemente usados para analisar a atividade dos usuários.
- Diagnóstico. Notou que o servidor ficou lento? Veja quem está acessando e o que está fazendo!
Agora você está pronto para monitorar seu sistema como um chefe! Não se esqueça que proteger o sistema começa entendendo o que está rolando nos bastidores dele.
GO TO FULL VERSION