自动设置组的写权限

自动设置组的写权限

我想创建一个目录,多个用户可以在其中贡献相同的文件,并且我希望任何用户创建的每个文件默认情况下对组中的每个人都具有写入权限。

我为目录设置了 setgid,所有新文件都有正确的组。但是,仍然会在组中创建没有写入权限的新文件。

这是我正在尝试做的事情的说明:

(作为根用户):

mkdir --mode=u+rwx,g+rws,o-rwx /tmp/mydir
chown root.mygroup /tmp/mydir
touch /tmp/mydir/test.txt

然后当我这样做时ls -la /tmp/mydir/我得到

drwxrws---  2 root    mygroup    4096 Sep 12 12:04 .
drwxrwxrwt 11 root    root       4096 Sep 12 12:04 ..
-rw-r--r--  1 root    mygroup    0    Sep 12 12:03 test.txt

因此,对于该组的成员创作的所有新文件,永远不会为该组填充写入权限。我知道其他组用户仍然可以通过chmod g+w对特定文件执行操作来覆盖它,例如test.txt上面的示例,这在大多数情况下是正确的行为,但是有没有一种方法可以递归地更改特定目录并允许写入权限自动设置为组以及该目录中所有新文件的所有者?

答案1

新文件和文件夹的默认权限由以下因素决定掩码。如果你配置的是默认的掩码对于您的用户002,组权限将设置rw为新文件和文件夹。可以使用 为所有用户配置 umask pam_umask

要使用,在基于 Debian 的发行版上,您应该通过将以下内容附加到文件末尾来pam_umask配置模块:/etc/pam.d/common-session

 session optional   pam_umask.so

然后在 中配置所需的 umask 值/etc/login.defs

请注意,使用 PAM 配置的掩码并不适用于所有 Gnome 应用程序(有关详细信息,请参阅如何设置umask整个 gnome 会话)。但是,从ssh或启动的会话tty不受影响。

如果您不想更改系统上的默认 umask,可以使用POSIX 访问控制列表。当为目录设置ACL时,新文件将继承ACL默认访问控制列表。可以分别使用setfacl和来设置和修改 ACL getfacl。某些文件系统可能需要额外的安装标志来启用 ACL。

相关内容