Como Gerenciar e Listar Usuários no Ubuntu: Guia Completo de Contas de Usuário, Permissões e Comandos

.

目次

1. Introdução

Ubuntu é uma distribuição Linux popular usada por muitos usuários, desde ambientes pessoais até sistemas de servidores corporativos. Ao gerenciar um sistema Ubuntu, a administração de contas de usuário é essencial. Em particular, revisar a lista de usuários registrados ajuda na gestão de segurança e na organização de contas.

Este artigo explica como listar usuários no Ubuntu. Ele cobre desde comandos básicos até métodos para obter informações detalhadas, sendo útil tanto para iniciantes quanto para administradores experientes.

2. Como Verificar a Lista de Usuários no Ubuntu

No Ubuntu, as informações dos usuários podem ser facilmente obtidas usando arquivos e comandos específicos. Os métodos a seguir permitem que você verifique a lista de usuários.

2.1 Exibir Lista de Usuários Usando /etc/passwd

No Ubuntu, todas as informações dos usuários são armazenadas no arquivo /etc/passwd. Exibir esse arquivo permite que você verifique todos os usuários registrados.

Exemplo de comando

cat /etc/passwd

Executar este comando exibe informações no seguinte formato:

root:x:0:0:root:/root:/bin/bash
user1:x:1000:1000:User One,,,:/home/user1:/bin/bash
user2:x:1001:1001:User Two,,,:/home/user2:/bin/bash

Cada linha consiste em campos separados por dois-pontos (:) contendo as seguintes informações:

  1. Nome de usuário
  2. Senha (agora representada como x)
  3. ID do usuário (UID)
  4. ID do grupo (GID)
  5. Informação do usuário (campo de comentário)
  6. Diretório home
  7. Shell de login padrão

Como esse arquivo inclui usuários de sistema, você pode extrair apenas os usuários de login regulares usando os métodos abaixo.

2.2 Listar Apenas Nomes de Usuário

Para listar apenas os nomes de usuário, use o seguinte comando:

cut -d: -f1 /etc/passwd

Alternativamente, você pode usar o comando awk:

awk -F':' '{ print $1 }' /etc/passwd

Exemplo de saída:

root
user1
user2

2.3 Procurar um Usuário Específico

Para verificar se um usuário específico existe, use o comando grep:

grep 'user1' /etc/passwd

Este comando exibe apenas a entrada relacionada a user1.

2.4 Listar Grupos via /etc/group

Para verificar os grupos aos quais um usuário pertence, consulte o arquivo /etc/group:

cat /etc/group | cut -d: -f1

Para listar os grupos de um usuário específico, use:

groups user1

Exemplo de saída:

user1 : user1 sudo

Isso indica que user1 também é membro do grupo sudo.

3. Como Verificar Usuários Atualmente Conectados

O Ubuntu fornece vários comandos para verificar quais usuários estão conectados no momento. Esses comandos ajudam a obter informações de sessão e login.

3.1 Verificando Usuários Conectados com who

O comando who lista todos os usuários atualmente conectados.

Exemplo de comando

who

Exemplo de saída

user1    tty1         2025-02-16 10:05
user2    pts/0        2025-02-16 11:30

Explicação dos campos

  1. Nome de usuário (usuário conectado)
  2. Nome do terminal (ex.: tty1 para local, pts/0 para SSH)
  3. Hora de login

O comando who é simples e útil quando você quer verificar rapidamente o status de login.

3.2 Verificando Informações Detalhadas com w

O comando w fornece informações mais detalhadas que o who.

Exemplo de comando

w

Exemplo de saída

11:35:25 up 2:15,  2 users,  load average: 0.03, 0.02, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user1    tty1                      10:05    1:30m  0.10s  0.10s -bash
user2    pts/0    192.168.1.10      11:30    0.00s  0.05s  0.02s sshd

Explicação dos campos

  • Tempo de atividade do sistema
  • Número de usuários conectados
  • Média de carga da CPU
  • Nome de usuário
  • Terminal
  • Host remoto
  • Hora de login
  • Tempo ocioso
  • Uso da CPU
  • Processo em execução

O endereço IP no campo FROM ajuda a verificar logins SSH remotos, sendo útil para monitoramento e gestão de segurança.

3.3 Exibir Usuários Conectados com users

Se você quiser uma lista simplificada mostrando apenas os nomes de usuário dos usuários conectados, o comando users é útil.

Exemplo de comando

users

Exemplo de saída

user1 user2

Este comando é uma versão simplificada do who e mostra apenas os nomes de usuário dos usuários conectados.

3.4 Identificar o Usuário Atual com whoami

Para verificar qual usuário está executando a sessão atual, use o comando whoami.

Exemplo de comando

whoami

Exemplo de saída

user1

Este comando simplesmente exibe o nome de usuário do usuário da sessão atual, sendo útil para verificar o contexto de execução.

3.5 Verificar Histórico de Login Usando last

O comando last permite revisar o histórico de login dos usuários.

Exemplo de comando

last

Exemplo de saída

user1    pts/0        192.168.1.10     Mon Feb 15 10:20   still logged in
user2    tty1                          Mon Feb 15 09:30 - 10:00  (00:30)
root     tty1                          Sun Feb 14 22:15 - 23:45  (01:30)
  • Nome de usuário
  • Terminal usado
  • Endereço IP remoto
  • Hora de início do login
  • Hora de logout (ou ainda conectado)
  • Duração total da sessão

Este comando ajuda os administradores a monitorar acessos anteriores e detectar logins suspeitos.

4. Como Verificar Informações Detalhadas do Usuário

O Ubuntu fornece vários comandos para obter informações detalhadas sobre usuários registrados. Revisar detalhes como UID, associação a grupos e shell de login ajuda os administradores a gerenciar permissões com precisão. Esta seção explica os métodos usando id, groups, finger e chage.

4.1 Verificar UID, GID e Grupos Usando id

O comando id exibe o UID (Identificador de Usuário), GID (Identificador de Grupo) e a associação a grupos do usuário.

Exemplo de comando
id user1
Exemplo de saída
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(docker)
  • uid → Identificador do usuário
  • gid → Identificador do grupo primário
  • groups → Todos os grupos aos quais o usuário pertence
Verificar informações do usuário atual
id

4.2 Verificar Associação a Grupos via groups

O comando groups lista rapidamente os grupos aos quais um usuário pertence.

Exemplo de comando
groups user1
Exemplo de saída
user1 : user1 sudo docker

groups é útil quando você deseja ver apenas os nomes dos grupos sem IDs detalhados.

4.3 Recuperar Detalhes do Usuário Usando finger

O comando finger fornece informações detalhadas do usuário, como nome completo, diretório de login e tipo de shell.

Comando de instalação
sudo apt install finger
Exemplo de comando
finger user1
Exemplo de saída
Login: user1                    Name: User One
Directory: /home/user1          Shell: /bin/bash
Last login: Mon Feb 16 10:20 (UTC) on pts/0
  • Login → Nome de usuário
  • Name → Nome completo (opcional)
  • Directory → Diretório home
  • Shell → Shell padrão
  • Last login → Hora do último login

4.4 Verificar Expiração de Senha com chage

O comando chage permite que os administradores revisem o período de expiração da senha e a última alteração de senha.

Exemplo de comando
sudo chage -l user1
Exemplo de saída
Last password change            : Jan 15, 2025
Password expires                : Mar 15, 2025
Password inactive               : never
Account expires                 : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 5
  • Última alteração de senha → Data da última alteração da senha
  • Senha expira → Data de expiração da senha
  • Senha inativa → Duração de inatividade antes que a senha se torne inválida
  • Conta expira → Data de expiração da conta
  • Número mínimo de dias entre alterações de senha
  • Número máximo de dias entre alterações de senha
  • Dias de aviso antes da senha expirar

Administradores podem usar essas informações para aplicar políticas de senha e melhorar a segurança do sistema.

5. Gerenciando Usuários no Ubuntu (Adicionar, Excluir, Modificar)

O gerenciamento adequado de usuários melhora a estabilidade e a segurança do sistema. O Ubuntu fornece vários comandos administrativos, como adduser, deluser e usermod. Esta seção explica como adicionar, remover e modificar usuários.

5.1 Adicionando Usuários

O Ubuntu permite adicionar novos usuários usando os comandos adduser ou useradd.

5.1.1 Comando adduser (Recomendado)

O comando adduser fornece uma maneira interativa de adicionar usuários.

sudo adduser newuser

Exemplo de prompt interativo:

Adding user `newuser' ...
Adding new group `newuser' (1002) ...
Adding new user `newuser' (1002) with group `newuser' ...
Creating home directory `/home/newuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully
Changing the user information for newuser
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n]
  • Conta de usuário
  • Grupo dedicado
  • Diretório home (/home/newuser)
  • Senha para login
  • Informações básicas da conta

5.1.2 Comando useradd (Avançado)

O comando useradd é amigável a scripts e oferece controle mais fino, mas não configura tudo automaticamente.

sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
  • -m → Cria diretório home
  • -s /bin/bash → Define o shell de login

Uma senha deve ser definida separadamente ao usar este comando.

5.2 Excluindo Usuários

Você pode remover usuários usando deluser ou userdel.

5.2.1 Comando deluser (Recomendado)

O comando deluser remove uma conta de usuário.

sudo deluser newuser
Remover também o diretório home
sudo deluser --remove-home newuser

Isso exclui a conta e o diretório /home/newuser.

5.2.2 Comando userdel (Avançado)

O comando userdel oferece mais controle.

sudo userdel newuser
sudo userdel -r newuser

5.3 Modificando Usuários Existentes

Use o comando usermod para modificar informações de usuários existentes.

5.3.1 Alterar Nome de Usuário

sudo usermod -l newname oldname

5.3.2 Alterar Diretório Home

sudo usermod -d /new/home/path user1
sudo usermod -d /home/newuser -m user1

5.3.3 Modificar Associação a Grupos

sudo usermod -aG sudo user1
groups user1

5.3.4 Alterar Senha

sudo passwd user1
Enter new UNIX password: ********
Retype new UNIX password: ********
passwd: password updated successfully

6. Cenários Práticos para Gerenciamento de Usuários

O gerenciamento de usuários no Ubuntu vai além de listar e modificar contas. Entender como aplicar os comandos em cenários reais é essencial para manter um ambiente seguro e eficiente. Esta seção apresenta casos de uso comuns e como abordá‑los.

6.1 Buscar Usuários que Correspondam a Critérios Específicos

6.1.1 Exibir Usuários com Privilégios de Administrador (sudo)

Para listar usuários com privilégios sudo, use o comando getent para inspecionar o arquivo /etc/group:

getent group sudo

Saída de exemplo

sudo:x:27:user1,user2
  • sudo:x:27: → Informação do grupo
  • user1,user2 → Usuários pertencentes ao grupo sudo

6.1.2 Exibir Usuários com Capacidade de Login

O arquivo /etc/passwd inclui contas de sistema. Para extrair apenas os usuários que podem fazer login:

grep '/bin/bash' /etc/passwd

Exemplo de saída

user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
  • Apenas usuários com shells como /bin/bash ou /bin/sh são incluídos
  • Contas de sistema que utilizam /usr/sbin/nologin ou /bin/false são excluídas

6.1.3 Exibir Usuários do Sistema (Contas sem Login)

grep -E '/usr/sbin/nologin|/bin/false' /etc/passwd

Exemplo de saída

daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/bin/false

Isso ajuda os administradores a identificar contas que não devem ser removidas acidentalmente.

6.2 Limpeza Periódica de Usuários Inativos

6.2.1 Exibir a Última Hora de Login de Todos os Usuários

lastlog

Exemplo de saída

Username         Port     From             Latest
root            tty1                      Mon Feb 12 14:02:08 +0000 2025
user1           pts/0    192.168.1.10      Mon Jan 15 10:30:12 +0000 2025
user2           pts/1    192.168.1.20      Never logged in
  • Nunca fez login → O usuário nunca fez login
    sudo deluser user2 --remove-home
    

6.2.2 Verificar a Última Alteração de Senha

sudo chage -l user1
sudo passwd --expire user1

Na próxima vez que o usuário fizer login, será necessário redefinir a senha por motivos de segurança.

6.3 Verificar Usuários Conectados via SSH

who | grep pts

Exemplo de saída

user1    pts/0        192.168.1.10     11:30

Isso ajuda a identificar usuários remotos e seus endereços IP.

6.4 Exportar Todas as Informações de Usuário para CSV

getent passwd | awk -F: '{print $1 "," $3 "," $4 "," $6}' > users.csv

Exemplo users.csv

root,0,0,/root
user1,1001,1001,/home/user1
user2,1002,1002,/home/user2
  • Exporta nome de usuário, UID, GID e diretório home
  • Os dados podem ser analisados usando Excel ou planilhas

7. Perguntas Frequentes

7.1 Posso editar /etc/passwd diretamente?

Resposta: A edição direta não é recomendada. Modificações incorretas podem impedir o login ou danificar o sistema.

Método mais seguro:

sudo vipw

7.2 Diferença Entre os Comandos who e users

CommandDescription
whoDisplays detailed login information
usersDisplays only usernames of logged-in users

7.3 Como Verificar o Histórico de Login de um Usuário Específico

last user1

7.4 Como Alterar a Senha de um Usuário

sudo passwd user1

7.5 Como Desativar Temporariamente um Usuário

sudo usermod -L user1
sudo usermod -U user1

7.6 Adicionar um Usuário ao Grupo sudo

sudo usermod -aG sudo user1

7.7 Alterar o Diretório Home de um Usuário

sudo usermod -d /new/home/path -m user1

7.8 Remover Completamente um Usuário e Seus Dados

sudo deluser --remove-home user1

ou

sudo userdel -r user1

7.9 Verificar Atividade Detalhada de Usuários Logados

w
  • Usuários logados
  • Endereços IP remotos
  • Processos atuais
  • Carga do sistema

Isso permite que os administradores monitorem o uso e detectem acessos não autorizados.