我对用户和组略知一二;过去我可能有一个像“DBAS”或“ADMINS”这样的组,我会向每个组添加个人用户......
但我惊讶地发现我可以将用户添加到其他用户 - 就好像他们是组一样。
例如,如果我的 /etc/group 包含以下内容:
user1:x:12501:
user2:x:12502:user1
admin:x:123:user2,jim,bob
Run Code Online (Sandbox Code Playgroud)
由于 user2 是 admin 组的成员,而 user1 是 user2 的成员 - user1 实际上是管理员吗?如果 admin 组在 sudoers 文件中,user1 也可以使用它吗?
我试图模拟这一点,但我作为 user1 无法做到这一点……但我不确定这是不可能的。
编辑:对不起 - 有问题的更新错误。
在您的示例中,您:
user1作为组 的一部分user2。user2作为组 的一部分admin。用户user1不同于组user1。
由于(用户)user2是admin组的成员,而(用户)user1是(组)的成员user2-user1实际上是管理员吗?
user2是admin组的成员。不是组user1。如果admin组在 sudoers 文件中,(用户) 也可以user2使用它吗?
如果 admin 组在 sudoers 文件中,user1 也可以使用它吗?
user2。即使用户user1是组的一部分user2。它们是不同的东西,但在这个和许多发行版设置中共享相同的名称。一方面是组,另一方面是用户。如果名称匹配,它们仍然是完全不同的东西。总结一下:将用户与组分开。名称可能相同,但它们指代不同的实体。在 GNU/Linux 中,组内没有组,组只能包含用户(这与 Windows 不同)。
一点背景知识:在 Linux 中,用户始终是主要组的成员,也可以是零个或多个次要组的成员。
当用户创建文件时,文件的用户 ID和组 ID分别设置为用户和她的主要组的 ID,因此该文件由该用户和组“拥有”。此外,文件的权限是使用当前umask设置自动设置的,其中包括“用户”、“组”和“其他人”的权限。因此,或多或少,与用户的主要组在同一组中的所有用户都至少获得了对用户创建的文件的某些权限。
另一方面,次要组不影响用户创建的文件的所有权,您可以将它们视为允许访问其他人创建的文件的一种方式。
如您所见,主要组的“自动”行为使其有点容易无意中允许访问。出于这个原因,Ubuntu 与许多其他 Linux 发行版一起使用用户私有组方案 - 当创建用户时,会创建一个具有相同名称的组并将其设置为该用户的主要组。因此,用户的主要组始终是只有一个成员的组。
Red Hat Enterprise Linux 使用用户私有组 (UPG) 方案,这使得 UNIX 组更易于管理。
每当向系统添加新用户时,就会创建一个 UPG。UPG 与创建它的用户同名,并且该用户是 UPG 的唯一成员。
UPG 可以安全地为新创建的文件或目录设置默认权限,允许用户和该用户的组对文件或目录进行修改。
确定将哪些权限应用于新创建的文件或目录的设置称为 umask,并在 /etc/bashrc 文件中进行配置。传统上,在 UNIX 系统上,umask 设置为 022,这仅允许创建文件或目录的用户进行修改。在此方案下,所有其他用户,包括创建者组的成员,均不得进行任何修改。但是,在 UPG 方案下,这种“组保护”不是必需的,因为每个用户都有自己的私人组。
所以,正如你所看到的,没有“用户是另一个用户的成员”的事情——正如@Kent 提到的,在 Linux 中用户不能“包含”其他用户,组也不能嵌套,只能包含用户,不能包含其他组. 您混淆的根源在于,在 User Private Group 方案中,用户的主要组是一个与用户同名的“私人”组。
| 归档时间: |
|
| 查看次数: |
490 次 |
| 最近记录: |