当我这样做时ls -l
,其中两个字段是所有者的用户名和所属组的名称。
用户名很清楚 - 我创建了该文件,它是我的。然而,组条目让我感到困惑。我的用户是多个组的成员。与我的用户名同名的群组有何特别之处?它拥有新创建的文件,而不是其他组,例如 sudoers。
答案1
组条目来自您的主要组,默认情况下与您的用户名相同。
新用户被分配到他/她自己的组中,该组中仅包含他,因此称为私有组。因此,除非用户故意更改文件的组所有权,否则该文件将属于作为所有者的用户和作为组所有者的私有组。 http://linuxers.org/article/difference- Between-primary-and-secondary-groups-linux
答案2
传统 UNIX 系统为文件保留的元数据包括:
- 标识文件所有者的用户 ID;
- 标识拥有该文件的组的组 ID;
- 用户、所属组和其他人的权限位。
文件组 ID 的唯一作用(如下所述的目录除外)是确定有效权限。当进程尝试访问文件时:
- 如果该进程以拥有该文件的用户身份运行,则应用用户权限;
- 否则,如果进程将拥有该文件的组作为其有效组或补充组之一,则应用组权限;
- 否则适用“其他”权限。
许多现代的unices都支持访问控制列表这些规则的延伸。
创建文件时,其所有者被设置为创建该文件的进程的有效用户 ID。应用以下两个规则之一来确定拥有该文件的组:
- BSD 语义:文件属于拥有该目录的组;
- System V 语义:文件属于创建它的进程的有效组 ID。
Linux 和许多其他现代 unice 应用 System V 语义,除非该组拥有设置gid位设置,在这种情况下应用 BSD 语义。当然可以稍后使用chown
或更改所有者和组chgrp
。
通常,进程的有效组 ID 是启动该进程的用户的主要组。/etc/passwd
如果使用本地用户数据库,则这是 中列出的组。在 Linux 上,您可以通过getenv passwd $USER
where $USER
is your username (或任何其他用户名) 来查看它。主要组 ID 是第四个以冒号分隔的字段。
根据您的发行版,默认情况下,所有用户都位于同一组(通常称为users
),或者每个用户都有自己的与该用户同名的组。企业网络通常根据用户工作的部门或角色将用户分组,例如accounting
,,,等。it
students
答案3
你在问吗如何或者为什么?
chown :mygroup myfile
您可以使用更常见的方法更改组权限chown myuser:mygroup myfile
。
为什么更复杂,但涉及为可能包含许多用户的组设置权限的能力。一个例子是wheel
在 sudoeors 文件中[通常]被授予运行权限的组sudo
。