Respostas:
Você precisará encontrar arquivos manualmente, o que provavelmente seria o deluserque faria.
Por favor, note que não--remove-all-files é o mesmo que . O último remove apenas o homedir (que pode incluir arquivos não pertencentes a esse usuário, embora não seja usual), o primeiro remove todos os arquivos pertencentes a esse usuário do sistema. Pelo menos se a página de manual é confiável .rm -r /home/user
O GNU findtem um -userteste, para que você possa find / -user xxxencontrar todos os arquivos pertencentes ao usuário xxx. xxxseria o nome do usuário e pode (e, nesse caso , terá que, como o usuário não existe mais) ser o ID numérico do usuário. findtambém tem uma -deleteopção, então
find / -user xxx -delete
Deveria fazê-lo, embora não tenha testado o comando com todas as opções ao mesmo tempo.
EDIT: ID numérico: a razão pela qual eu disse que você deve usar um ID numérico é porque, como você já excluiu o usuário, a entrada dele /etc/passwdfoi excluída (tinha, juntamente com outras coisas, o ID do usuário e seu nome de usuário) .
Portanto, se você não removeu o homedir dele, uma das maneiras mais fáceis é apenas consultar o ID do proprietário desse homedir:
stat -c %u /home/user/
( staté uma ferramenta para ler os dados do sistema de arquivos. -c %udiz statcomo escrever sua saída, aqui estou pedindo para simplesmente gerar o ID do usuário)
Se você gosta de one-liners, pode até encadear os dois comandos:
find / -user $(stat -c %u /home/user/) -delete
(É claro que você pode preferir executá-lo primeiro, sem -deleteter certeza de que não há nada que queira manter e cometer algum erro cometido ao escrever o restante do comando. Erros ao executar operações de exclusão recursiva /não são para os fracos de coração.)
rmuso xargs(mas isso provavelmente atingirá os limites do argumento se houver muitos resultados), mas veja -deptho manual de informações: "Se o seu comando` find 'remove os diretórios, você pode achar que você recebe uma mensagem de erro falsa quando o `find 'tenta se recuperar em um diretório que foi removido agora. O uso da opção` -path' normalmente resolverá esse problema. " (e mais tarde na mesma seção, "(` -delete 'implica `-path' de qualquer maneira)")
find: 'user' is not the name of a known use
/etc/passwdlista do usuário e seu ID. Você terá que encontrar o ID numérico. Do stat -c %u /home/user/, deve dar-lhe o ID de usuário numérico, uso que, como xxxacima.
Outra opção seria adicionar novamente o usuário adduser, especificando o UID antigo e, em seguida, executar delusernovamente, desta vez com o --remove-all-filessinalizador.
Suponha, por exemplo, que o usuário tenha nome de usuário alicee UID 1001:
sudo adduser --uid 1001 alice
sudo deluser --remove-all-files alice
O gnu find tem as opções -nouser e -nogroup, procure-o man find. Com essas opções, você pode encontrar todos os arquivos no seu sistema de arquivos que não têm usuário correspondente em / etc / passwd. Se você não criou um novo usuário com os uids antigos dos usuários excluídos, é possível encontrar esses arquivos órfãos.
No entanto, você pode encontrar mais arquivos - não apenas aqueles que pertenceram ao seu excluído.
-execopção find para executar um comando rm personalizado, se quiser um pouco mais de controle sobre suas exclusões, mas nunca tentei isso com o YMMV.