如何删除已删除用户的剩余文件?

如何删除已删除用户的剩余文件?

我知道删除用户userdel username可能会导致信息泄露和其他安全问题(正如教程书中所说,管理员应该删除用户选项-r)。但我尝试了一下,看看会发生什么。现在我剩下“无主”目录。我可以用 删除它们cd /home; rm -r username有什么快速的方法吗?

书上说:

root 用户可以通过运行以下命令来查找“无主”文件和目录:find / -nouser -o -nogroup 2> /dev/null

它是如何工作的?

答案1

好吧,我自己解决了。在find / -nouser -o -nogroup 2> /dev/null您的帮助下,您可以查看系统上所有未链接/无主的文件,并且可以删除系统上留下的每个文件。
如果您没有使用命令-r选项userdel,您可以执行以下操作来删除所有旧用户的文件。

  1. 删除已删除的用户home目录。cd /home; rm -r username
  2. 查找剩余文件:find / -nouser -o -nogroup 2> /dev/null.
  3. 删除上一个命令输出中的每个文件。

重要编辑:不要使用这 3 个步骤,而是使用:

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

find它使用命令的强制 ( -f) 和递归 ( -r) 选项删除命令的每个输出rm

引用@Tim Pierce 的回答问题:

xarg读取标准输入上的行并将其转换为命令行参数,因此您可以有效地将数据通过管道传输到另一个程序的命令行。


编辑#2:根据@roaima,我们需要使用:

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

祝你好运!

答案2

或者更简单,在当前目录中:

sudo find . -nouser -nogroup | xargs rm -rf

如果它适用于您的整个文件系统,请更改.为您要检查的文件夹。/

相关内容