将 su 限制为一组用户

将 su 限制为一组用户

有没有什么方法可以限制su特定的用户群体?

在网上搜索后,我偶然发现了 IBM AIX 的概念sugroup。每当创建用户时,sugroup都可以设置属性;并且只有该组的成员才允许 su 为该用户。

sugroup可以通过创建一个仅包含允许 su 的某些用户的组来帮助我解决问题。分配sugroup意味着该组之外的用户不允许被其他用户 su。但这个概念sugroup在 Ubuntu 中不可用。如何在 Ubuntu 中实现?

我做了以下输入/etc/pam.d/su

auth required pam_wheel.so group=sulogin

我创建了以下内容:

  • 一个名为的组sulogin,供允许 su 的用户使用
  • 不属于的用户suloginuser1user2
  • 属于的用户suloginadmin1admin2

现在,当我以 身份 登录user1并尝试 su 到admin1或 时admin2,我被禁止这样做。这符合我的要求。当我以 身份 登录user1并尝试 su 到 时user2,我被禁止这样做。这不符合我的要求(尽管原始问题中没有明确提到我的要求)。

我需要限制所有不属于该组的用户sulogin对属于sulogin该组的任何用户的 su 权限。基本上,su 权限有 2 个级别。因此,在上述场景中:

  • user1应该能够suuser2反之亦然
  • user1或者不user2应该能够suadmin1admin2
  • admin1应该能够suuser1user2

答案1

在 Ubuntu 上也可以实现相同的功能,只是默认情况下未启用。请查看/etc/pam.d/su

# Uncomment this to force users to be a member of group root
# before they can use `su'. You can also add "group=foo"
# to the end of this line if you want to use a group other
# than the default "root" (but this may have side effect of
# denying "root" user, unless she's a member of "foo" or explicitly
# permitted earlier by e.g. "sufficient pam_rootok.so").
# (Replaces the `SU_WHEEL_ONLY' option from login.defs)
# auth       required   pam_wheel.so

因此,取消注释此auth行,su则将仅限于组 成员。或者,如果您想限制为组,root请取消注释并添加。group=suloginsulogin

相关内容