Fundamentos de Gerenciamento de Usuários: Primeiros Passos com useradd, usermod e userdel

Fundamentos de Gerenciamento de Usuários: Primeiros Passos com useradd, usermod e userdel

O que você vai conseguir fazer

  • Criar um usuário com useradd e deixá-lo apto a fazer login
  • Adicionar grupos com segurança usando usermod -aG
  • Entender o que o userdel remove e excluir por um procedimento reversível

Pré-requisitos (leia estes primeiro)

O Que Você Vai Aprender

  • Você vai conseguir criar um usuário com useradd e deixá-lo apto a fazer login.
  • Você vai conseguir adicionar grupos com segurança usando usermod -aG.
  • Você vai conseguir entender o que o userdel remove e excluir por um procedimento reversível.

Para quem é: quem agora precisa criar contas de servidor para novos membros da equipe.

Termos definidos antes de começar

Cada termo abaixo é definido uma única vez, aqui.

  • Um usuário é a identidade que faz login no Linux e o opera. Existem dois tipos: contas que pessoas usam e contas que serviços usam (usuários de sistema).
  • Um grupo é um conjunto de usuários. Permissões de arquivos e de comandos podem ser concedidas por grupo, não apenas por usuário.
  • UID / GID são os números de identificação atribuídos a usuários e grupos. Internamente o Linux decide por esses números, não pelos nomes.
  • Um shell de login é o shell que inicia logo após o login. /bin/bash é o típico; definir /usr/sbin/nologin bloqueia o login por completo.
  • Um grupo suplementar é qualquer grupo além do primeiro a que o usuário pertence. Também é chamado de grupo secundário. O primeiro é o grupo primário.
  • Um diretório home é o espaço de trabalho próprio do usuário, /home/<usuario>.

O Que Você Pode Fazer com useradd, usermod e userdel?

O gerenciamento de usuários no Linux se resume a três comandos: useradd para criar usuários, usermod para modificar seus atributos e userdel para removê-los. Este guia cobre tanto Ubuntu/Debian quanto RHEL/CentOS com exemplos práticos de comandos.

Todos os comandos abaixo precisam de sudo. Os registros de usuário são configuração de todo o sistema, e um usuário comum não consegue reescrevê-los.

Referência Rápida

sudo useradd -m -s /bin/bash alice    # Criar usuario
sudo passwd alice                      # Definir senha
sudo usermod -aG sudo alice            # Conceder privilegios sudo
sudo userdel -r alice                  # Excluir usuario e diretorio home

Pré-requisitos

  • SO: Ubuntu 22.04 / Debian ou baseado em RHEL (exemplos usam Ubuntu)
  • Execute comandos como um usuário com privilégios sudo

1. Como Criar um Usuário com useradd

O comando useradd adiciona um novo usuário ao sistema. Sem opções, ele não cria um diretório home -- sempre use a flag -m na prática.

sudo useradd -m -s /bin/bash alice

Opções Comuns:

Opção Descrição
-m Criar diretório home
-s /bin/bash Definir shell de login
-d /custom/home Especificar caminho personalizado do home
-G group1,group2 Definir grupos suplementares iniciais
-c "Alice Smith" Campo de comentário (tipicamente nome completo)
-e 2026-12-31 Data de expiração da conta (AAAA-MM-DD)
-r Criar uma conta de sistema (para serviços)

Definindo uma Senha

useradd sozinho não define uma senha -- a conta não pode fazer login até você executar passwd:

sudo passwd alice

Verificando o Novo Usuário

id alice
uid=1001(alice) gid=1001(alice) groups=1001(alice)
grep alice /etc/passwd
alice:x:1001:1001::/home/alice:/bin/bash

Os campos do /etc/passwd são: usuario:senha(x):UID:GID:comentario:home:shell.

No Ubuntu/Debian, adduser também está disponível

adduser é um wrapper interativo em torno do useradd. Use useradd para scripts e automação; use adduser para configurações manuais pontuais, pois ele solicita uma senha automaticamente.

sudo adduser alice    # Configuracao interativa incluindo senha

2. Como Modificar um Usuário com usermod

usermod altera atributos de um usuário existente. A operação mais frequente é adicionar um usuário a um grupo.

Concedendo Privilégios sudo

sudo usermod -aG sudo alice       # Ubuntu/Debian
sudo usermod -aG wheel alice      # RHEL/CentOS/Fedora

Outras Alterações Comuns

Alterar diretório home:

sudo usermod -d /new/home -m alice    # -m move os arquivos existentes

Alterar shell de login:

sudo usermod -s /bin/zsh alice

Bloquear ou desbloquear uma conta:

sudo usermod -L alice    # Bloqueia a senha (o login por chave continua funcionando)
sudo usermod -U alice    # Desbloquear

O usermod -L prefixa o hash de senha em /etc/shadow com !, então a única coisa que ele desabilita é a autenticação por senha. Um usuário com chave pública em ~/.ssh/authorized_keys continua conseguindo entrar por SSH depois do bloqueio. O procedimento que interrompe o login de forma confiável está na seção do userdel mais adiante.

Verificando Alterações

id alice
groups alice
uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo)

Alterações de grupo entram em vigor no próximo login. Para aplicá-las na sessão atual sem fazer logout, execute newgrp sudo.

3. Como Excluir um Usuário com userdel

userdel remove um usuário do sistema. Use -r para também excluir o diretório home e a caixa de correio.

sudo userdel -r alice

Comparação de comportamento:

Comando Usuário removido Diretório home Caixa de correio
userdel alice Sim Mantido Mantido
userdel -r alice Sim Excluído Excluído

Excluindo um Usuário Logado

Um usuário logado não pode ser excluído. O comando recusa com algo como userdel: user alice is currently used by process 1234.

who                    # Verificar quem esta logado
sudo pkill -u alice    # Encerrar todos os processos de alice
sudo userdel -r alice

O pkill -u encerra os processos daquele usuário sem perguntar. Trabalho não salvo e qualquer serviço que ele esteja rodando param também. Verifique antes o que está em execução com ps -u alice.

4. Fundamentos de Gerenciamento de Grupos

Usuários e grupos são fortemente acoplados no Linux. Aqui estão as operações essenciais de grupo.

Criar um Grupo

sudo groupadd developers

Adicionar um Usuário a um Grupo

sudo usermod -aG developers alice

Excluir um Grupo

sudo groupdel developers

Verificar Associação ao Grupo

grep developers /etc/group
developers:x:1002:alice

Campos do /etc/group: nomegrupo:senha:GID:lista-de-membros

5. Política de Senhas e Expiração de Conta

Use chage para inspecionar e configurar políticas de envelhecimento de senhas.

sudo chage -l alice
Last password change                                    : May 31, 2026
Password expires                                        : never
Account expires                                         : never

Definindo expiração:

sudo chage -M 90 alice         # Expirar senha apos 90 dias
sudo chage -E 2026-12-31 alice # Definir data de expiracao da conta

6. Contas de Sistema para Serviços

Daemons de serviço (nginx, postgres, etc.) executam sob contas de sistema dedicadas que não podem fazer login interativamente. Crie-as com -r:

sudo useradd -r -s /usr/sbin/nologin -d /var/lib/myapp myapp

Flags principais para contas de serviço:

Flag Finalidade
-r Marcar como conta de sistema (UID < 1000)
-s /usr/sbin/nologin Impedir login interativo
-d /var/lib/myapp Definir diretório de trabalho
-M Pular criação do diretório home

Resumo: Padrões Práticos de Comandos

Fluxo Padrão para um Novo Usuário

sudo useradd -m -s /bin/bash -c "Alice Smith" alice
sudo passwd alice
sudo usermod -aG sudo alice
id alice    # Verificar

Comandos de Referência Rápida

id username               # UID/GID e lista de grupos
groups username           # Associacoes de grupo
grep username /etc/passwd # Entrada do passwd
grep username /etc/group  # Associacoes de grupo
sudo cat /etc/shadow      # Info de hash de senha

Solução de Problemas

Sintoma: o novo usuário não consegue fazer login

Causa: o passwd nunca foi executado, então a senha está indefinida e a conta está bloqueada.

Verificação:

sudo passwd -S alice
alice L 05/31/2026 0 99999 7 -1

O segundo campo é L para bloqueada e P quando existe senha definida.

Correção:

sudo passwd alice

Sintoma: o useradd funcionou, mas não existe diretório home

Causa: foi executado sem -m. No Ubuntu, o useradd não cria o home por padrão.

Verificação:

ls -ld /home/alice

Correção: copie primeiro o conteúdo de /etc/skel (o diretório de modelo para novos usuários) e depois defina proprietário e permissões. Sem o modelo não existem .bashrc nem .profile, o que leva a outro conjunto de problemas: prompt quebrado, aliases inativos e ~/.local/bin fora do PATH.

sudo mkdir /home/alice
sudo cp -a /etc/skel/. /home/alice/
sudo chown -R alice:alice /home/alice
sudo chmod 700 /home/alice

No Ubuntu e no Debian, o sudo mkhomedir_helper alice faz o mesmo trabalho em um único passo.

Sintoma: o grupo foi adicionado, mas os privilégios não valem

Causa: alterações de grupo passam a valer no próximo login do usuário. A sessão atual ainda carrega a informação antiga.

Verificação:

id alice        # o estado atual em /etc/group
groups          # o que esta sessao esta carregando

Correção: saia e entre novamente. Para aplicar de imediato, execute newgrp sudo.

Sintoma: o userdel falha com currently used by process

Causa: ainda existem processos daquele usuário em execução.

Verificação:

ps -u alice

Correção: revise a lista, execute sudo pkill -u alice e depois exclua.

Checklist de Conclusão

  • [ ] Criou o diretório home com useradd -m
  • [ ] Definiu uma senha com passwd para a conta poder fazer login
  • [ ] Adicionou grupos com usermod -aG (com o -a)
  • [ ] Verificou UID, GID e associações com id
  • [ ] Inspecionou o diretório home e fez backup antes de excluir
  • [ ] Ao bloquear em vez de excluir, foi até o chage -E 0 para também impedir o login por chave

Próximas Leituras