为什么普通用户无法创建和管理用户组?

为什么普通用户无法创建和管理用户组?

我一直想知道普通用户无法创建自己的组是否有充分的理由。对于文件所有者来说,能够设置组并管理文件权限是有意义的。例如,用户可以只允许系统上的亲密朋友读取他们的主文件夹,因此他们设置自己的组来管理他们拥有所有权的文件的文件权限。

是否存在我在这里没有看到的安全问题?我不明白为什么 sysadm 必须维护系统上的所有组。

答案1

组是一种系统范围的资源,存储在root.当前的group格式除了 GID 范围之外,不区分“用户”和“系统”组,即使这样做,它也无法向不同的人授予对文件部分的访问权限。因此,您必须想出一个新系统来允许非管理员添加和删除组,而无需通过sudo等方式授予完全访问权限。显然,对该功能的需求还不够(可能是因为 Unix 安装最初是机构性的),但有足够的需求来实现相关功能。

您可以委托用户修改组会员资格使用gpasswd。如果您授予用户对组的管理控制权,他们就可以添加或删除成员,而无需具有访问root权限(默认情况下,没有组管理员,因此只能root进行更改。)给定以下条件(如root):

# groupadd newgroup
# gpasswd -A owner -M member1,member2 newgroup

用户owner现在可以修改组newgroup而无需获得任何其他权限:

$ gpasswd -a member3 newgroup
Adding user member3 to group newgroup

(您会注意到,组管理员实际上不必是成员。)

答案2

想象一下,如果任何和所有用户都可以创建他们想要的任何组,将会发生多么疯狂的事情。要添加到它,您是否允许用户将他们想要的任何人添加到组中?对于系统管理员来说,这将是一个巨大的痛苦。它被称为最小特权原则。对于可能没有并且可能没有正确理解事物如何工作的普通用户来说,没有理由能够创建其他组并将其添加到组中,这在任何操作系统的企业级别尤其如此。

这与不允许普通最终用户更改系统设置或安装软件的原因相同。

相关内容