Como listar usuários no Linux: comandos, ferramentas e dicas de automação
Aug 07, 2026
/
Faradilla A.
/
6 min de leitura
Para listar usuários no Linux, o método mais comum é consultar o arquivo /etc/passwd, que armazena informações essenciais sobre todas as contas do sistema.
Listar usuários é uma tarefa básica de administração de sistemas. Essa prática ajuda a verificar quem está conectado, filtrar contas por ID e automatizar auditorias para manter a segurança do sistema.
Confira um resumo dos comandos que você pode usar para listar usuários no Linux:
- cat. Ideal para visualizar rapidamente todos os usuários locais, sem filtros.
- getent. Ideal para listar usuários de bancos de dados locais e de rede, como LDAP.
- compgen. Útil para gerar uma lista simples de nomes de usuário para scripts e preenchimento automático.
- awk e cut. Ideais para filtrar a saída e exibir apenas os nomes de usuário.
- who e users. Usados para verificar quais usuários estão conectados no momento.
Pré-requisitos para listar usuários no Linux
Antes de listar usuários no Linux, verifique se você tem acesso ao terminal. Esse requisito vale tanto para máquinas locais quanto para sistemas remotos, como um servidor virtual privado (VPS).
Se você estiver administrando um VPS, conecte-se por meio de um cliente SSH usando a seguinte sintaxe:
ssh username@your_server_ip
Qualquer usuário pode ler o arquivo /etc/passwd e executar comandos básicos para listar usuários. No entanto, ações administrativas, como criar, modificar ou excluir usuários, exigem acesso root ou sudo.
Como listar usuários no Linux com o comando cat
A maneira mais simples de listar todos os usuários é exibir o conteúdo do arquivo /etc/passwd usando o comando cat. Esse arquivo contém os atributos de todos os usuários do sistema, incluindo contas do sistema e usuários comuns.
Execute o seguinte comando para exibir o arquivo:
cat /etc/passwd
A saída exibe uma linha por conta de usuário.

Cada linha segue esta estrutura:
username:x:UID:GID:GECOS:home_directory:shell
Veja a seguir o que cada campo representa:
- username. O nome usado para fazer login na conta.
- x. Um marcador que indica que o hash da senha está armazenado em /etc/shadow.
- UID. O ID numérico do usuário.
- GID. O ID numérico do grupo principal.
- GECOS. Informações opcionais sobre o usuário, como nome completo ou descrição.
- home_directory. O caminho absoluto para o diretório inicial do usuário.
- shell. O programa executado quando o usuário faz login.
Usar cat em sistemas com centenas de usuários pode gerar uma saída difícil de consultar. Nesse caso, você pode direcionar os resultados para less para facilitar a leitura ou usar grep para localizar contas específicas.
cat /etc/passwd | less
cat /etc/passwd | grep username
Como qualquer usuário pode ler o arquivo /etc/passwd, lembre-se de que ele expõe os IDs dos usuários e os caminhos dos diretórios iniciais. As senhas, no entanto, permanecem criptografadas em /etc/shadow, que só pode ser lido pelo usuário root.
Como listar usuários no Linux com o comando getent
O comando getent busca entradas nas bibliotecas Name Service Switch (NSS) do sistema, sendo ideal para sistemas que usam diretórios de usuários baseados em rede, como LDAP ou Active Directory.
Ao contrário de cat, que lê apenas o arquivo local /etc/passwd, getent consulta todos os bancos de dados de usuários configurados conforme as definições de /etc/nsswitch.conf.
Para listar todos os usuários, tanto locais quanto da rede, execute:
getent passwd
Se você precisar verificar os detalhes de um usuário específico, acrescente o nome de usuário:
getent passwd username

O formato da saída é o mesmo de /etc/passwd, mas getent exibe dados de usuários de todos os serviços conectados, não apenas das contas locais.
Como listar usuários no Linux com o comando compgen
O compgen é um comando integrado do Bash que gera correspondências para preenchimento automático. Quando usado com a opção -u, ele exibe todos os nomes de usuário conhecidos pelo sistema, incluindo contas de usuários comuns e do sistema.
Para listar todos os nomes de usuário, execute:
compgen -u
compgen consulta os mesmos bancos de dados NSS que getent, mas exibe apenas os nomes de usuário, sem campos adicionais. Por isso, é especialmente útil para scripts de shell ou para configurar recursos de preenchimento automático em ferramentas personalizadas.
Por padrão, compgen exibe uma longa lista vertical. Para facilitar a leitura, direcione a saída para o comando column:
compgen -u | column

Importante! Como compgen é um comando integrado do Bash, ele não está disponível em outros shells, como sh ou zsh.
Como listar usuários no Linux com os comandos awk e cut
Para extrair apenas os nomes de usuário ou outros campos específicos, sem informações desnecessárias como IDs e caminhos de diretórios, use utilitários de processamento de texto, como awk ou cut.
Essas ferramentas funcionam como filtros. Elas recebem os dados de /etc/passwd e exibem apenas os campos solicitados.
Confira uma comparação de como usar os dois comandos para listar usuários:
| Recurso | awk | cut |
|---|---|---|
| Sintaxe | awk -F: ‘{ print $1}’ /etc/passwd | cut -d: -f1 /etc/passwd |
| Delimitador | Usa -F: para definir os dois-pontos como separador | Usa -d: para definir os dois-pontos como separador |
| Lógica dos campos | Exibe $1 (o primeiro campo) | Seleciona -f1 (o primeiro campo) |
| Ideal para | Formatação complexa e processamento condicional | Extração simples e rápida de campos |
Use awk se você pretende aplicar processamento adicional, como filtrar usuários por um intervalo de UID.

Use cut se precisar de uma solução rápida para extrair apenas os nomes de usuário.

Como verificar os usuários conectados no Linux
Para ver quem está com uma sessão ativa no momento, em vez de listar todas as contas cadastradas, use os comandos who ou users.
Listar todos os usuários com ferramentas como cat mostra todas as contas que podem fazer login, enquanto who e users mostram quem está conectado naquele momento. Essa distinção é importante ao monitorar a atividade em servidores com vários usuários.
- users. Exibe uma linha simples com os nomes de usuário conectados no momento.
users

- who. Fornece informações detalhadas, incluindo a linha do terminal, o horário de login e o endereço IP de origem.

Para obter ainda mais detalhes, incluindo o tempo de inatividade e os processos em execução, use o comando w:
w

Práticas recomendadas para listar usuários no Linux
Para listar usuários de forma eficiente, filtre os resultados para facilitar a leitura, proteja os dados dos usuários e automatize verificações regulares para manter a integridade do sistema.
Combine comandos com pipes
Para encontrar informações específicas rapidamente, combine os comandos de listagem com grep. Por exemplo, para verificar se um usuário específico existe sem precisar percorrer toda a lista:
getent passwd | grep username
Você também pode ordenar a lista em ordem alfabética para facilitar a auditoria manual:
cut -d: -f1 /etc/passwd | sort

Use uma interface gráfica (GUI) para gerenciar usuários
Se você preferir uma interface gráfica em vez da linha de comando, use um painel de controle como o Webmin ou o gerenciador de usuários nativo do seu ambiente de desktop.
Essas ferramentas geralmente oferecem uma tabela pesquisável de usuários, facilitando a visualização de grupos, IDs e permissões do shell sem precisar memorizar a sintaxe dos comandos.
Gerencie as informações dos usuários com segurança
Listar os usuários regularmente é uma prática importante de segurança. Ao revisar a lista, verifique se há:
- Contas desconhecidas. Usuários que você não criou.
- Contas inesperadas com UID 0. Apenas o usuário root deve ter UID 0. Qualquer outra conta com UID 0 tem privilégios completos de superusuário.
- Acesso ao shell. Verifique se os usuários do sistema, como www-data ou nobody, usam /usr/sbin/nologin (Debian/Ubuntu), /sbin/nologin (RHEL/CentOS) ou /bin/false para impedir o login interativo.
Como automatizar a listagem de usuários com scripts Bash
Para automatizar a listagem de usuários, crie scripts em Bash que executem comandos como cut ou awk e agende-os com cron.
Listar usuários com comandos como cat, getent, awk, cut, who e compgen funciona bem para verificações rápidas, mas se torna ineficiente em sistemas Linux de grande porte, pois exige etapas manuais e repetitivas.
Criar scripts em Bash permite automatizar a obtenção da lista de usuários, filtrar contas com base em critérios específicos, como usuários com acesso sudo, e salvar relatórios para análise posterior. Essa abordagem ajuda a manter auditorias consistentes e seguras durante o gerenciamento de servidores a longo prazo.
Depois, você pode agendar esses scripts com tarefas cron para detectar automaticamente alterações suspeitas nas contas. Um script simples pode exportar a lista de usuários para um arquivo de texto com data e hora, permitindo comparar os resultados ao longo do tempo.
Veja um exemplo de script que salva uma lista de usuários gerada com cut e inclui tratamento básico de erros:
#!/bin/bash # Exportar a lista de usuários para um arquivo com data e hora OUTPUT_DIR="$HOME/user_audits" OUTPUT_FILE="$OUTPUT_DIR/user_audit_$(date +%F).txt" # Criar o diretório de saída, caso ele não exista mkdir -p "$OUTPUT_DIR" # Gerar a lista de usuários cut -d: -f1 /etc/passwd | sort > "$OUTPUT_FILE" echo "User audit saved to $OUTPUT_FILE"
Torne o script executável e agende sua execução diária ou semanal com o cron:
chmod +x ~/user_audit.sh crontab -e # Add: 0 2 * * * ~/user_audit.sh
Se você não se sentir à vontade para escrever scripts do zero, pode usar o Hostinger Agent, nosso assistente com IA. Ele está disponível em todos os planos de VPS e gera scripts de automação instantaneamente. Basta digitar um prompt que descreva o que você quer que o script faça.
Para aprender na prática, confira exemplos de scripts Bash e veja como estruturar tarefas de automação mais avançadas.

Todo o conteúdo dos tutoriais deste site segue os rigorosos padrões editoriais e valores da Hostinger.
Comentários
1 responsesMarch 23 2023
Excelente!