一个团体如何拥有一个文件?

一个团体如何拥有一个文件?

当我这样做时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 $USERwhere $USERis your username (或任何其他用户名) 来查看它。主要组 ID 是第四个以冒号分隔的字段。

根据您的发行版,默认情况下,所有用户都位于同一组(通常称为users),或者每个用户都有自己的与该用户同名的组。企业网络通常根据用户工作的部门或角色将用户分组,例如accounting,,,等。itstudents

答案3

你在问吗如何或者为什么

chown :mygroup myfile您可以使用更常见的方法更改组权限chown myuser:mygroup myfile

为什么更复杂,但涉及为可能包含许多用户的组设置权限的能力。一个例子是wheel在 sudoeors 文件中[通常]被授予运行权限的组sudo

相关内容