我知道删除用户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
,您可以执行以下操作来删除所有旧用户的文件。
- 删除已删除的用户
home
目录。cd /home; rm -r username
- 查找剩余文件:
find / -nouser -o -nogroup 2> /dev/null
. - 删除上一个命令输出中的每个文件。
重要编辑:不要使用这 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
如果它适用于您的整个文件系统,请更改.
为您要检查的文件夹。/