使用 chmod g+s 更改文件夹的组所有权

mik*_*628 6 directory chmod

我有一个文件夹层次结构,我想更改组所有权,包括任何后续文件/文件夹添加。我打算使用 chmod g+s 但我不确定它是否适用于已经创建的文件夹以及我如何使用组名运行它。

lsi*_*siu 10

使用 rthomson 的回答/命令:

find /path/to/hierarchy -type d | xargs chmod g+s

当任何子目录中有空格时,它给我带来了问题:相反,我发现使用这些find -exec选项要容易得多,即:

find /path/to/hierarchy -type d -exec chmod g+s {} \;


rth*_*son 7

(非常轻微地)扩展现有答案,您可能希望递归设置任何现有文件和目录的所有权以及任何现有目录的 setgid 位。也就是说,如果您的层次结构已经有现有的文件和目录。如果没有,您无需担心递归部分。

像这样的东西:

find /path/to/hierarchy -type d | xargs chmod g+s
chgrp -R groupname /path/to/hierarchy
Run Code Online (Sandbox Code Playgroud)

你准备好了。现在,如果您想确保对复制或移动到层次结构中的文件/目录具有某些 rwx 权限,那就有点棘手了。您可能需要使用默认 ACL,但 Linux ACL 实现(我相信基于死的 POSIX 提案)并不总是像人们预期的那样工作。


小智 2

您可以使用

chgrp -R 文件夹

这将在文件夹、子文件夹及其各自的文件中反复更改组所有者