将整个文件系统的组所有权从指定更改为

将整个文件系统的组所有权从指定更改为

我有 3 个特定的用户帐户(无论如何少于 10 个),对于特定/data/home目录下的所有文件和文件夹,我只想更改这些特定用户的所有出现的文件/文件夹的组所有权。

我不知道 Everywhere 可能在哪里(除了/home/data),所以我想做一个<what?> -Ron /。有没有办法做到这一点?现有组已命名XYZ,我想将其拥有的所有文件和文件夹更改ron.XYZron.users.那怎么办呢?

答案1

用于find识别目标文件,然后将组更改应用于这些文件。

find / -user ron -group XYZ -print -exec chgrp users {} +

-print如果您不担心查看哪些文件正在更改,则可以省略。-exec … +如果您想在更改文件之前先查看哪些文件会受到影响,您也可以(暂时)省略 。

您可以一次将匹配扩展到所有三个用户帐户:

find / \( -user ron -o -user alice -o -user bob \) -group XYZ -print -exec chgrp users {} +

请注意,您将进入/proc(和其他伪文件系统)。您可以放心地忽略有关更改所有权的错误。您可以使用-prune省略此类文件系统:

find / \( -path /proc -o -path /dev -o -path /sys \) -prune -o …as above…

相关内容