Linux PAM pam_succeed_if.so

我已经在PAM中指定了一个AD安全组来限制哪些域用户可以login。 我还将AD用户的会话限制在这个组中。 这可以防止login的用户对组外的AD用户执行“su – ”操作。

Winbind uid映射configuration为使AD用户的UID> = 10000000。

这些在下面的PAMconfiguration中按预期工作。

将/etc/pam.d/system-auth

auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so user ingroup AD_group debug auth requisite pam_succeed_if.so uid >= 500 quiet auth sufficient pam_krb5.so use_first_pass auth sufficient pam_winbind.so use_first_pass auth required pam_deny.so account required pam_access.so account required pam_unix.so broken_shadow account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 500 quiet account [default=bad success=ok user_unknown=ignore] pam_krb5.so account [default=bad success=ok user_unknown=ignore] pam_winbind.so account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_krb5.so use_authtok password sufficient pam_winbind.so use_authtok password required pam_deny.so session [default=1 success=ignore] pam_succeed_if.so quiet uid >= 10000000 session requisite pam_succeed_if.so user ingroup AD_group debug session optional pam_mkhomedir.so umask=0077 skel=/etc/skel session optional pam_keyinit.so revoke session required pam_limits.so session optional pam_mkhomedir.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session optional pam_krb5.so 

现在,我想添加一条规则,以便AD_group之外的特定AD用户可以login。 我试着在文件的第3行之后添加下面一行:

 auth requisite pam_succeed_if.so user=AD_user_1 debug 

但是这导致所有AD用户被允许login。

任何有识之士将不胜感激。

所有成功进行身份validation的用户都很感兴趣,因为这意味着组成员身份testing现在也被忽略了。 (根据我上面的评论,它看起来不像你跳过它)这听起来更像是比我所requisite sufficient

你有没有检查过,以确保你没有testing用户谁会通过sufficient pam_unix.so条件? 检查你的影子表,并确保没有人在你的testing池中为用户添加本地密码。

也可能会跳过auth模块(SSH密钥validation),在这种情况下,您的访问检查是在auth而不是account将会出现问题。 无论这是否是原因,我build议将它们移到account以便您的访问策略不会有漏洞。

auth =与身份validation相关的任何内容

account =与授权相关的任何内容(访问检查)