通过 ADS 进行 Linux 身份验证——仅允许 PAM 中的特定组

Ken*_*iah 6 active-directory authentication samba pam winbind

我正在使用 samba/winbind/PAM 路由从我们的 Active Directory 域对我们的 linux 服务器上的用户进行身份验证。

一切正常,但我想限制允许哪些 AD 组进行身份验证。Winbind / PAM 当前允许在活动目录中使用任何已启用的用户帐户,而 pam_winbind.so 似乎并未注意该require_membership_of=MYDOMAIN\\mygroup参数。如果我在/etc/pam.d/system-auth/etc/security/pam_winbind.conf文件中设置它并不重要。

如何强制 winbind 遵守require_membership_of设置?使用带有最新软件包的 CentOS 5.5。

更新:事实证明,PAM 总是允许 root 通过身份验证,因为它是 root。所以只要账户存在,root 就会通过 auth。任何其他帐户都受到身份验证限制。

更新 2: require_membership_of似乎正在工作,除非请求用户具有 root uid。在这种情况下,无论require_membership_of设置如何,登录都会成功。这对于任何其他帐户都不是问题。require_membership_of即使当前用户是 root,我如何配置 PAM 以强制检查?

当前的 PAM 配置如下:

auth sufficient pam_winbind.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth required pam_deny.so

account sufficient pam_winbind.so
account sufficient pam_localuser.so
account required pam_unix.so broken_shadow

password ..... (excluded for brevity)

session required pam_winbind.so
session required pam_mkhomedir.so skel=/etc/skel umask=0077
session required pam_limits.so
session required pam_unix.so
Run Code Online (Sandbox Code Playgroud)

require_memebership_of当前在/etc/security/pam_winbind.conf文件中设置,并且正在工作(除了上面概述的根情况)。

eli*_*uck 0

您可能会更幸运地通过 SID 引用该组。

查找组的 SID:

wbinfo -n "mygroup"
Run Code Online (Sandbox Code Playgroud)

然后使用SID(从wbinfo确定)设置require_membership_of

require_membership_of=S-1-5-21-1757981276-1399067357-839522115-75638
Run Code Online (Sandbox Code Playgroud)