我正在使用 Linux Mint 18。假设有几个共享目录。每个目录属于一个特定的组。其中一个是 foo,必须由 Pippo 和 Pluto 共享,所以我创建了组 foo 并且我已经将 Pippo 和 Pluto 添加到其中。在 foo 及其子目录中创建的所有内容都必须可供 Pippo 和 Pluto 访问,无论创建者是 Pippo 还是 Pluto。问题是,在创建新文件或目录时,内容的 id 组设置为 Pluto 或 Pippo(取决于创建内容的人)而不是 foo 即使我更改了 foo 文件夹的组和其子目录和文件到 foo。
给新内容组 foo 的方法是什么?
编辑
在 foo 文件夹之外,由 Pippo 或 Pluto 创建的每个文件都必须将组分别设置为 Pippo 和 Pluto。
默认行为(如您所见)是为文件提供与所有者相同的 UID 和 GID。如果要覆盖它,则需要在存储文件的目录上设置setgid 位。这不会影响已经存在的文件和目录,因此您还需要修复下面每个目录的权限(正如@cas 提到的,您可能希望允许
foo
组成员修改彼此的工作(并且查看目录),因此您也需要添加这些权限。)要解决此问题(假设您已经创建了目录结构),请从结构的根目录运行以下命令:
我过去
find
只选择目录,因为在文件上设置 setuid/setgid 位具有不同的含义。当然,如果你正在创建一个新目录,你只需要运行chmod
/chgrp
命令而不使用find
.编辑:修复了
chmod
权限。您可以运行 cron 作业以递归地将内容所有者更改为 foo 组。