![“用户”这个组的目的是什么?](https://linux22.com/image/1152744/%E2%80%9C%E7%94%A8%E6%88%B7%E2%80%9D%E8%BF%99%E4%B8%AA%E7%BB%84%E7%9A%84%E7%9B%AE%E7%9A%84%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
在我的 Ubuntu 上,存在一个 ID 为 100 的组“用户”。但它根本没有成员。我的问题是:
- 这个群组的目的是什么?
- 系统的每个用户是否都应该成为该组的成员?
答案1
Ubuntu 基于 Debian,用户也遵循同样的理念。因此我引用Debian 对系统组的解释:
用户:虽然 Debian 系统默认使用私有用户组系统(每个用户都有自己的组),但有些人更喜欢使用更传统的组系统,其中每个用户都是该组的成员。
它不用于 Ubuntu(和 Debian),但它被保存在那里,以防系统管理员希望使用它。它有效地确保它在所有系统上具有相同的 GID,而如果它是在本地创建的,情况就不一样了。
在标准 Ubuntu 安装中,无需让用户成为成员users
。在某些情况下和设置中,让所有用户属于一个共同的用户组可能会很方便。
答案2
因为“用户 ID”概念最初是为了记账,而不是为了安全,而且并不是每个“用户”帐户都意味着可以吃芝士汉堡的东西。“用户”组旨在指定确实映射到真实人员的用户身份。举一个简单的例子,在许多基于 UNIX 的图形工作站上,登录屏幕不会显示 /etc/passwd 中的每个用户帐户,而只会显示“用户”组(或可能更紧密的部分)中的用户帐户。
以 Apache Web 服务器为例。在许多系统中,它以“用户”‘httpd’的身份运行。但是,显然,我们不希望任何人以该用户身份登录。从传统的会计意义上讲,我们不想向任何普通用户收取系统 Web 服务器使用的 CPU 时间的费用。从后一种安全意义上讲,Web 服务器不应该能够完成登录用户可以完成的所有操作。
如今,我们有了 SELINUX 和访问控制列表,以及许多其他概念,它们为我们提供更灵活的锁定方式。但基本思想仍然是创建类似于用户的东西,但其权限比登录用户少,或者至少不同。
现在,继续回答问题的下一部分:为什么用户组是空白的?
因为你有你自己的组。如果你将朋友的帐户添加到该计算机,他们也会有自己的组。但是,他们惯于获得您已添加到您自己的组中的任何特殊权限。使用“用户”组方法,假设他们是该组的成员,您对该组的所有增强和限制都将随新帐户一起出现。
举一个实际的例子,如果您安装了 Oracle VirtualBox,您可能必须添加一个组“vboxusers”,该组将允许您访问 /dev 中的特殊设备,从而使 VirtualBox 可以加速某些设备并传递其他设备。如果您使用 Wireshark,情况也是如此。
对于为每个用户创建新组的系统,通常有一个用于新组的模板。