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
useradde deixá-lo apto a fazer login. - Você vai conseguir adicionar grupos com segurança usando
usermod -aG. - Você vai conseguir entender o que o
userdelremove 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/nologinbloqueia 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
Esquecer o -a faz as associações de grupo desaparecerem
Nunca omita -a (append) de -aG. O que acontece quando dá errado é o seguinte.
- Com
-Gsozinho, toda associação fora dos grupos listados é removida. Ele substitui em vez de acrescentar. - Se executar em si mesmo e sair do grupo
sudo, osudopara de funcionar. Como o Ubuntu desabilita a senha de root, a recuperação exige um boot de resgate por console físico.
Como se manter seguro envolve dois hábitos.
- Registre as associações atuais com
id aliceantes de executar, para poder reescrevê-las se houver substituição. - Pratique em um usuário de teste, nunca na sua própria conta.
id alice # registre as associacoes antes sudo usermod -aG sudo alice id alice # confirme a adicao
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 |
O userdel -r não pode ser desfeito
O que acontece quando dá errado se resume a dois pontos.
- O
-rexclui o diretório home com todo o conteúdo: os scripts, as chaves e os arquivos de trabalho que aquele usuário deixou. - Se o UID for reutilizado depois da exclusão, arquivos restaurados de um backup podem terminar pertencendo a outra pessoa.
Como se manter seguro leva três passos.
- Descubra o que está a ponto de desaparecer.
sudo ls -la /home/alice # inspecione o que sera excluido sudo du -sh /home/alice # verifique o tamanho
- Tire do caminho o que você precisa guardar.
sudo tar czf /root/alice-home.tar.gz /home/alice
- Se não houver pressa, interrompa o login primeiro e espere.
O usermod -L desabilita apenas a autenticação por senha; o login por chave pública SSH continua funcionando. Para interromper de forma confiável, execute os três comandos juntos.
sudo usermod -L alice # desabilita a autenticacao por senha sudo chage -E 0 alice # expira a conta (o login por chave tambem e recusado) sudo usermod -s /usr/sbin/nologin alice # desabilita o shell de login
Para reverter, use sudo usermod -U alice, sudo chage -E -1 alice e sudo usermod -s /bin/bash alice. Para aposentar a própria chave, mova-a para outro lugar com sudo mv /home/alice/.ssh/authorized_keys /root/alice-authorized_keys.bak.
Exclua somente quando tiver certeza de que não haverá volta.
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
passwdpara 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 0para também impedir o login por chave