如何解读群组权限?

如何解读群组权限?

我目前的理解是,当用户 A 创建文件 F 时,该用户成为文件所有者,并且还可以为该用户最终所属的任何组设置权限。

因此,当用户 A 位于组 G 中时,G 中的每个成员都将拥有用户 A 最初为文件 F 设置的权限。同样的情况也适用于组 G1、G2...,其中 A 是其中的成员。

但 A 不可能预见到他或她将属于同一组中的哪些人,以及他将被分入什么样的组,预先确定的许可似乎有风险,即使它可以更改。所以我的理解显得很幼稚。

真的很感谢任何人的帮助。

答案1

在大多数 Linux 上,至少作为开箱即用的默认设置,用户的主要组与其用户名相同,因此这不会成为问题,因为新文件的组所有权将属于没有人会的组曾经在。

当服务器为新用户配置为具有共享的主要组时,我们就可以使用umask环境变量来防止出现任何问题。这是设置新文件的默认权限的内容,并且可以为每个用户设置。因此,用户 A 可能会将其设置umask为 077,然后他创建的任何新文件都将具有 700 的权限,这意味着组成员将无法对其执行任何操作。

为了对此进行扩展,您的 umask 通常设置为初始化脚本的一部分 - 即登录用户帐户时运行的脚本。您有两套 - 您的全局配置文件脚本,最常见的是/etc/profile/etc/bashrc,以及您的本地配置文件脚本,它们存储在您的主目录下,为.bashrc.profile(实际使用的脚本取决于您的 shell,这些对于 bash 来说很常见)。当您登录时,相关的全局脚本首先运行,然后本地脚本运行,并且可以覆盖全局脚本完成的任何操作。因此,在.bashrc(或等效项)下,您只需附加到脚本,umask 077将值设置为 077。您也可以只运行umask 077来设置当前会话的 umask。

答案2

创建新文件时,它有一个用户(所有者)和一个与其关联的组。即使用户 A 属于多个组,该文件也只能与其中一个组关联。您可以通过一个简单的ls -l.任何文件都有一个用户和一个组。

因此,即使将用户A添加到新组中,该新组也无法访问该文件,因此对其权限没有影响。新用户访问该文件的唯一方法是将他们添加到初始所属组 G 中……并且如果他们具有实现这一目标所需的访问级别,那么他们无论如何都能够通过其他方式访问该文件。

相关内容