Eu usei deluser
sem o parâmetro --remove-all-files
:
$ deluser 'user'
Existe outra maneira de rm -r /home/user
remover todos os arquivos pertencentes a um usuário agora (já que eu já executei o delusor)?
fonte
Eu usei deluser
sem o parâmetro --remove-all-files
:
$ deluser 'user'
Existe outra maneira de rm -r /home/user
remover todos os arquivos pertencentes a um usuário agora (já que eu já executei o delusor)?
Você precisará encontrar arquivos manualmente, o que provavelmente seria o deluser
que 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 find
tem um -user
teste, para que você possa find / -user xxx
encontrar todos os arquivos pertencentes ao usuário xxx
. xxx
seria 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. find
também tem uma -delete
opçã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/passwd
foi 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 %u
diz stat
como 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 -delete
ter 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.)
-exec
opçã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.rm
usoxargs
(mas isso provavelmente atingirá os limites do argumento se houver muitos resultados), mas veja-depth
o 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/passwd
lista do usuário e seu ID. Você terá que encontrar o ID numérico. Dostat -c %u /home/user/
, deve dar-lhe o ID de usuário numérico, uso que, comoxxx
acima.Outra opção seria adicionar novamente o usuário
adduser
, especificando o UID antigo e, em seguida, executardeluser
novamente, desta vez com o--remove-all-files
sinalizador.Suponha, por exemplo, que o usuário tenha nome de usuário
alice
e UID1001
:fonte
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.
fonte