Apagar contas de utilizador em Linux parece, à primeira vista, uma tarefa trivial. Na prática, é um procedimento delicado: uma remoção mal feita deixa ficheiros órfãos, processos pendentes, entradas em crons, chaves SSH abandonadas e até problemas de auditoria. Neste guia vais aprender três métodos para remover utilizadores em Linux — userdel, deluser e remoção manual — e quais as boas práticas a seguir para garantir que não fica nada para trás.
Compreender contas de utilizador em Linux
Uma conta de utilizador no Linux é mais do que uma entrada em /etc/passwd. Ela está espalhada por vários ficheiros e localizações do sistema:
/etc/passwd— UID, GID, shell, diretório home./etc/shadow— hash da palavra-passe e política de expiração./etc/groupe/etc/gshadow— pertença a grupos./home/<utilizador>— ficheiros pessoais e configurações./var/mail/<utilizador>ou/var/spool/mail/<utilizador>— spool de email local./var/spool/cron/crontabs/<utilizador>— tarefas agendadas.- Processos em execução pertencentes ao utilizador.
- Ficheiros dispersos por
/var,/tmp,/opt, etc. - Chaves SSH em
~/.ssh/authorized_keys.
Uma remoção completa tem de cobrir todos estes pontos — ou pelo menos os que sejam aplicáveis ao teu sistema.
Antes de apagar: checklist obrigatória
- Verifica processos ativos:
ps -u <utilizador> - Última atividade:
lastlog -u <utilizador> - Chaves SSH:
ls -la /home/<utilizador>/.ssh/e procura referências em/etc/ssh/ou emauthorized_keysnoutras contas. - Backup dos dados: mesmo que a política preveja remoção, faz um snapshot ou tarball antes de continuar.
- Confirma a identidade da conta:
id <utilizador>— um typo pode apagar a conta errada. - Procura ficheiros em todo o sistema:
sudo find / -user <utilizador> 2>/dev/null
Método 1: comando userdel
O userdel é a utilidade padrão para apagar contas em Linux. Está disponível em qualquer distribuição.
Sintaxe básica
sudo userdel [opcoes] <utilizador>
Apagar conta mantendo ficheiros
sudo userdel joao
Esta forma remove apenas a conta. O diretório home e o mail spool permanecem — útil quando é necessário preservar o trabalho do utilizador.
Apagar conta e diretório home
sudo userdel -r joao
A flag -r apaga também o diretório home e o mail spool. Não apaga ficheiros do utilizador localizados fora do home (por exemplo, em /var ou /tmp).
Forçar remoção (utilizador com sessão ativa)
sudo userdel -f -r joao
A flag -f força a remoção mesmo que o utilizador tenha sessão ativa — usa com extremo cuidado, pois pode deixar processos órfãos.
Encontrar ficheiros fora do home
sudo find / -user joao -ls 2>/dev/null
Lista todos os ficheiros pertencentes ao utilizador antes de decidir o que fazer com eles (apagar, transferir propriedade, mover para arquivo).
Método 2: comando deluser (Debian/Ubuntu)
Em distribuições baseadas em Debian, o deluser é um script Perl de mais alto nível que envolve o userdel e adiciona funcionalidades práticas.
# Apagar apenas a conta sudo deluser joao # Apagar conta e diretorio home sudo deluser --remove-home joao # Apagar conta e todos os ficheiros do utilizador sudo deluser --remove-all-files joao # Fazer backup antes de apagar sudo deluser --backup --backup-to /var/backups --remove-home joao
A opção --backup cria um tar.gz com tudo o que vai ser removido — é a forma mais segura de apagar mantendo a possibilidade de reverter.
Método 3: remoção manual
A remoção manual é útil para auditoria forense, para sistemas com configurações invulgares ou quando os métodos automáticos falham. Exige cuidado e nunca deve ser feita em produção sem backup prévio.
Passo 1 — Terminar processos do utilizador
# Listar primeiro ps -u joao # Encerrar sessoes/processos em sequencia sudo pkill -KILL -u joao
Passo 2 — Remover entradas dos ficheiros do sistema
Em vez de editar /etc/passwd e /etc/shadow diretamente com um editor, usa vipw e vigr, que aplicam locking e validação:
sudo vipw # edita /etc/passwd com lock sudo vipw -s # edita /etc/shadow com lock sudo vigr # edita /etc/group com lock sudo vigr -s # edita /etc/gshadow com lock
Remove em cada um a linha correspondente ao utilizador. Editar estes ficheiros sem locking pode corromper a base de utilizadores em sistemas com criação concorrente de contas.
Passo 3 — Apagar o diretório home
sudo rm -rf /home/joao sudo rm -f /var/mail/joao sudo rm -f /var/spool/mail/joao sudo rm -f /var/spool/cron/crontabs/joao
Passo 4 — Encontrar e tratar ficheiros dispersos
# 1. Listar (sempre primeiro)
sudo find / -user joao -ls 2>/dev/null
# 2. Decidir: apagar, transferir ou arquivar
# Apagar:
sudo find / -user joao -exec rm -rf {} \;
# Transferir propriedade para outro utilizador:
sudo find / -user joao -exec chown maria:maria {} \;
Aviso crítico: nunca executes find / -user X -exec rm -rf {} \; sem teres confirmado primeiro a listagem. Um find mal escrito pode apagar ficheiros do sistema se o UID tiver sido reciclado.
Apagar utilizador mantendo os ficheiros
Em ambientes corporativos, raramente queres simplesmente eliminar os ficheiros: precisas de os transferir para outro responsável ou arquivá-los para auditoria.
Opção A — Arquivar antes de apagar
sudo mkdir -p /var/backups/utilizadores sudo tar -czf /var/backups/utilizadores/joao_$(date +%Y%m%d).tar.gz /home/joao sudo userdel -r joao
Opção B — Transferir propriedade
sudo chown -R maria:maria /home/joao sudo mv /home/joao /home/joao_arquivado sudo userdel joao
Verificar se o utilizador foi apagado
# A conta nao deve existir id joao # deve devolver "no such user" getent passwd joao # sem output # Verificar ficheiros do sistema sudo grep "^joao:" /etc/passwd /etc/shadow /etc/group /etc/gshadow # Verificar diretorio home ls -ld /home/joao # Verificar processos ps -u joao # Verificar ficheiros remanescentes sudo find / -user joao 2>/dev/null
Se algum destes comandos ainda devolver resultados, a remoção foi incompleta.
Erros comuns e resolução
| Erro | Causa | Solução |
|---|---|---|
userdel: user joao is currently used by process X | Sessão ou processo ativo | sudo pkill -KILL -u joao e voltar a tentar; em último caso userdel -f |
userdel: cannot remove entry 'joao' from /etc/passwd | Ficheiro com lock ou em modo read-only | Verificar com lsof /etc/passwd e remontar com mount -o remount,rw / |
| Diretório home não pode ser apagado | Atributos imutáveis | sudo chattr -i -R /home/joao e tentar de novo |
| Conta reaparece após reboot | Sistema de gestão centralizada (LDAP, AD, NIS) | Apagar na fonte da diretoria, não localmente |
| UID reciclado e ficheiros «mudam de dono» | Outro utilizador criado com o mesmo UID | Sempre apagar (ou transferir) ficheiros antes de remover a conta |
Boas práticas de segurança
- Política antes de procedimento: documenta o que acontece a uma conta após offboarding (apagar, desativar, arquivar, transferir).
- Desativar primeiro, apagar depois: em vez de apagar imediatamente, considera bloquear com
usermod -Lechage -E 0 <user>, e só remover após um período de retenção. - Backup obrigatório: antes de qualquer remoção definitiva, gera um arquivo verificável (com checksum).
- Revogar chaves SSH em bastion hosts: a chave do utilizador pode estar autorizada noutros servidores — usa configuração centralizada (Ansible, Puppet) para garantir consistência.
- Rotação de segredos: palavras-passe partilhadas, tokens API, chaves de serviço a que o utilizador tinha acesso devem ser rodadas, não apenas anuladas.
- Registos de auditoria: guarda evidências da remoção em
/var/log/auth.log(Debian/Ubuntu) ou/var/log/secure(RHEL) — e expede-as para um SIEM (Wazuh, Graylog, ELK). - Validação cross-system: em infraestrutura distribuída, confirma a remoção em todos os nodes; uma conta órfã num servidor secundário é uma porta de entrada.
- Não reutilizar UIDs: deixa o sistema atribuir UIDs novos para evitar herança de permissões.
Automatizar a remoção de contas inativas
Exemplo simples para identificar contas sem login há mais de 90 dias:
lastlog -b 90 | awk 'NR>1 && $2!="**Never" {print $1}'
A partir desta lista, integra com a tua política: notificar o gestor, bloquear com usermod -L, agendar remoção. Nunca automatizes o userdel -r sem revisão humana — o risco de eliminar a conta errada é demasiado elevado.
Conclusão
Apagar um utilizador em Linux é menos uma questão de comando e mais uma questão de processo. O userdel e o deluser são apenas a etapa final de um procedimento que deve incluir auditoria prévia, backup, revogação de credenciais cruzadas, transferência de ficheiros e validação posterior. Em ambientes profissionais, este fluxo deve estar documentado, automatizável e auditável — cada conta órfã é um vetor potencial de movimento lateral para um atacante.
Se chegaste aqui através do nosso guia sobre como criar utilizadores em Linux, tens agora o ciclo de vida completo: criação, gestão e remoção. Aplica estas práticas no teu próximo offboarding — e dorme melhor.
Domina a linha de comandos Linux
Gerir o ciclo de vida de utilizadores é apenas uma das competências de quem domina o terminal. O Workshop — Linha de Comandos Linux da HJFR leva-te do primeiro prompt à automação com scripts: 13 módulos e 184 capítulos interativos, em português, com demonstrações de terminal e exercícios práticos na nossa plataforma de e-learning.
Deixe um comentário