我有 3 个特定的用户帐户(无论如何少于 10 个),对于特定/data
或/home
目录下的所有文件和文件夹,我只想更改这些特定用户的所有出现的文件/文件夹的组所有权。
我不知道 Everywhere 可能在哪里(除了/home
和/data
),所以我想做一个<what?> -R
on /
。有没有办法做到这一点?现有组已命名XYZ
,我想将其拥有的所有文件和文件夹更改ron.XYZ
为ron.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…