gpt4 book ai didi

unix - Pam 身份验证,先尝试本地用户,然后尝试 LDAP

转载 作者:行者123 更新时间:2023-12-05 06:37:30 24 4
gpt4 key购买 nike

我使用 nslcd 守护程序在 RH5 上设置了一个 pam 身份验证,指向 Oracle Unified Directory。

我希望首先尝试对本地用户进行身份验证,然后如果没有找到用户,则尝试联系 LDAP。所以我以这种方式编辑了 /etc/nsswitch.conf:

passwd:     files ldap
shadow: files ldap
group: files ldap

但这似乎不起作用,因为如果 LDAP 服务器关闭,我将无法登录到服务器。

我错过了什么吗?

编辑:

这是我的 PAM/etc/pam.d/system-auth(我没有使用 sssd,只使用 nslcd)。

#%PAM-1.0
# This file is auto-generated.
auth required pam_env.so
auth sufficient pam_unix.so nullok
auth sufficient pam_ldap.so use_first_pass ignore_authinfo_unavail
auth required pam_deny.so

account required pam_unix.so broken_shadow
account required pam_ldap.so ignore_unknown_user ignore_authinfo_unavail
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 required pam_ldap.so try_first_pass ignore_unknown_user ignore_authinfo_unavail
password required pam_deny.so

session optional pam_keyinit.so revoke
session required pam_limits.so
session optional pam_mkhomedir.so skel=/etc/skel umask=077
session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session required pam_unix.so
session optional pam_ldap.so ignore_authinfo_unavail

我将系统身份验证设置为调试,结果如下:

Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<dns_1>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<dns_2>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<ip_1>:3389: Can't contact LDAP server
Dec 20 17:46:38 <hostname> nscd: nss_ldap: failed to bind to LDAP server ldap://<ip_2>:3389: Can't contact LDAP server

最佳答案

我发现了问题。

解决方案是更改 /etc/pam.d/systhem-auth-ac 中的这一行:

account   required      pam_unix.so broken_shadow

进入这个:

account   sufficient      pam_unix.so broken_shadow

如果您也有该文件,请务必更改 /etc/pam.d/password-auth-ac 中的相同指令。现在通过 nss_initgroups_ignoreusers 的白名单应该可以正常工作。

编辑(几年后):问题在于,由于 pam 身份验证是级联的,如果您已经拥有本地帐户,则没有理由继续使用帐户服务。所以第一行 (pam_unix.so) 足以进行身份​​验证。以前,堆栈还检查 pam_ldap.so,因为所有三行都需要登录,如果 ldap 服务关闭或无法访问,身份验证堆栈就会中断。

关于unix - Pam 身份验证,先尝试本地用户,然后尝试 LDAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47837800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com