在 Linux 上,如何列出特定所有者拥有的文件列表,然后修复组和所有者?

在 Linux 上,如何列出特定所有者拥有的文件列表,然后修复组和所有者?

我有一个深层而复杂的文件系统,其中一些文件被 root 意外写入。我想一次性将这些文件的所有权改回原始所有者。

我正在使用如下命令:

find /folder -type f | xargs ls -l | grep "root root" 

但也产生了很多垃圾。

我想先列出一个清单,然后在确认后只更改该列表中的文件。

答案1

find /folder -type -f -uid 0 

将找到 root 拥有的目录下的所有文件,-user root自然也会起作用。

如果以下所有文件/folder都应由同一用户/组拥有,则您只需执行递归即可chown

chown -R user:group /folder

答案2

使用

find /folder -uid 0 >/tmp/root.files

获取 root 拥有的文件列表。查看完列表后,您可以使用

while read file 
do
    chown user:group "$file"

done </tmp/root.files

答案3

与其他答案一样,使用find-uid 0-user root查找属于根目录的文件。然后使用-exec操作:

find /folder -type f -uid 0 -exec chown root:root {} \;

相关内容