usuáriodel Parece simples, mas a opção dele é… -r Pode apagar a pasta pessoal juntamente com os seus dados. Um erro no nome da conta ou um diretório pessoal incomum é suficiente para apagar a pasta errada.
Recomendo separar a exclusão da conta da exclusão dos arquivos. Comece anotando o UID, o diretório inicial, os grupos, as sessões e os processos. Em seguida, decida se os dados devem ser arquivados, transferidos ou excluídos. Esse método leva apenas alguns minutos e evita a perda irreversível de dados.

Confirme a conta local e o arquivo pessoal.
Nos exemplos a seguir, substitua Alice
getent passwd alice
grep '^alice:' /etc/passwd
getent Pode retornar uma conta do LDAP, SSSD ou outro diretório. Se o usuário aparecer com getent mas não em /etc/passwdnão lance usuáriodel Às cegas: processe a conta no diretório que a gerencia. O guia para listar usuários Linux Detalha essa diferença entre contas locais e contas fornecidas pelo NSS.
Em seguida, salve o UID e o caminho inicial na sua sessão de administração:
uid=$(id -u alice)
home=$(getent passwd alice | cut -d: -f6)
echo "UID=$uid HOME=$home"
id -nG alice
sudo ls -ld "$home"
/var/lib, /srv ou um diretório compartilhado. Não confie apenas no prefixo. /larVerifique também se você não está excluindo sua própria conta SSH ou uma conta usada por um aplicativo.
Sessões de controle, processos e tarefas agendadas
Uma conta que não está visível na tela de login pode ainda estar executando um serviço, backup ou tarefa agendada (cron job). Verifique as sessões e os processos antes de interrompê-los.
Quem
c
pgrep -a -u alice
ps -u alice -o pid,ppid,lstart,cmd
Caso encontre um processo de negócio, identifique o serviço a ele associado e transfira sua configuração para uma conta técnica antes de excluí-lo. matar -9 Este não é um procedimento para a saída de um funcionário. O artigo sobre matar no Linux Explica como solicitar uma abordagem sem multas e ler os jornais antes de forçar a passagem.
Verifique também as unidades crontab e systemd que fazem referência a este login:
sudo crontab -u alice -l
[:space:]sudo grep -R --line-number '^[]*User=alice[]*$' /etc/systemd/system /usr/lib/systemd/system 2>/dev/null[:space:]
USERDEL_CMD Em /etc/login.defs Ele pode executar um script para limpar tarefas cron, at ou de impressão, mas não é igual em todas as distribuições. Documentação login.defs usuáriodelPortanto, salve ou exclua tarefas explicitamente antes de acessar a conta.
sudo passwd -l alice
Este bloqueio não encerra sessões ativas e não bloqueia necessariamente chaves SSH. Verifique esses pontos de acesso separadamente. O guia sobre senha no Linux detalha esse limite.
A pasta pessoal do usuário não é o único local onde ele pode armazenar arquivos. Procure pelo UID do usuário nos locais utilizados pelo servidor:
sudo find /home /srv /var/www -xdev -uid "$uid" -print
Ajuste os pontos iniciais aos seus volumes. A opção Impede que cada pesquisa acesse outro sistema de arquivos; portanto, repita o comando nas montagens de dados afetadas. Evite um encontrar / improvisado em um servidor de produção ou em um armazenamento de rede muito grande.
Caso seja necessário armazenar os dados, verifique o espaço disponível e crie um arquivo compactado no diretório inicial:
df -h /root "$home"
sudo du -sh "$home"
sudo tar --one-file-system -C "$(dirname "$home")" -czf "/root/alice-home-$(date +%F).tar.gz" "$(basename "$home")"
sudo tar -tzf "/root/alice-home-$(date +%F).tar.gz" | head
Uma lista de arquivos legível não substitui uma restauração testada. Para um diretório pessoal importante, use seu backup habitual ou um snapshot e, em seguida, teste alguns arquivos restaurados em um local diferente.
Escolha entre manter o diretório pessoal ou excluí-lo.
A ordem sem -r Remove a conta dos arquivos do sistema, mas mantém sua pasta pessoal:
sudo userdel alice
Se a caixa de correio residencial e local realmente precisa desaparecer, use:
sudo userdel -r alice
De acordo com o página de manual do userdel, -r Ele exclui as pastas pessoais e de spool de e-mail, mas não os arquivos pertencentes ao usuário em outros sistemas de arquivos. Portanto, este comando não substitui o inventário realizado usando o UID.
Não use usuáriodel -f Para ignorar uma mensagem indicando processos ativos. Esta opção ignora as verificações de segurança e pode deixar o sistema em um estado inconsistente. Voltar para pgrepIdentifique o serviço em questão, encerre-o corretamente e reinicie o processo de exclusão.
Verifique o que resta após a exclusão do usuário.
$uid E $casaEm seguida, verifique o resultado:
getent passwd alice || echo "Conta não disponível"
pgrep -a -u "$uid"
test -e "$home" && sudo ls -ld "$home" || echo "Pasta pessoal ausente"
sudo find /home /srv /var/www -xdev -uid "$uid" -ls
Isso deve indicar que o login não existe mais. Se ainda houver arquivos com o UID antigo, decida pasta por pasta se eles devem ser arquivados, reatribuídos ou excluídos. Não aplique um chown-R global sem conhecer o papel dos dados.