Como apagar os arquivos restantes do usuário removido?

1

Sei que excluir um usuário com userdel username pode causar vazamento de informações e outros problemas de segurança (como diz o manual do tutorial, o administrador deve excluir o usuário com a opção -r ). Mas eu tentei ver o que acontece. Agora eu tenho diretórios "unowned" restantes. Eu posso deletá-los com cd /home; rm -r username . Existe alguma maneira rápida de fazer isso?

O livro diz:

The root user can find "unowned" files and directories by running: find / -nouser -o -nogroup 2> /dev/null

Como funciona?

    
por rzaaeeff 15.03.2015 / 16:49

1 resposta

3

Ok, resolvi sozinho. Com a ajuda de find / -nouser -o -nogroup 2> /dev/null , você vê todos os arquivos não vinculados / sem dono do sistema e pode excluir todos os arquivos restantes do sistema.
Se você não usou a opção -r com o comando userdel , poderá fazer o seguinte para se livrar dos arquivos de todos os usuários antigos.

  1. Exclua o diretório home do usuário removido. cd /home; rm -r username
  2. Encontrar arquivos restantes: find / -nouser -o -nogroup 2> /dev/null .
  3. Exclua todos os arquivos na saída do comando anterior.

Edições importantes : em vez destas três etapas, use:

find / -nouser -o -nogroup 2> /dev/null | xargs rm -fr

Remove todas as saídas do comando find com as opções force ( -f ) e recursive ( -r ) do comando rm .

Citação da resposta de @Tim Pierce em this pergunta:

xarg reads lines on standard input and turns them into command-line arguments, so you can effectively pipe data to the command line of another program.

Editar # 2 : De acordo com o @roaima, precisamos usar:

find / \( -nouser -o -nogroup \) -print0 | xargs -0 rm -rf

Boa sorte!

    
por 15.03.2015 / 20:03

Tags