“getent passwd”列举用户,“su“失败”

“getent passwd”列举用户,“su“失败”

我有一台带有两个 BDB 后端的 LDAP 服务器。用户帐户分布在两个后端之间。后端 A 有一个指向后端 B 的引用对象。

我曾尝试在 Linux Mint 13 上设置 LDAP 客户端身份验证。getent passwd 列出了后端 A 和后端 B 之间的用户,但使用 su - 时,su 返回“未知 ID”。不过,使用 su 和后端 A 的用户 ID 就可以了。

以下是客户端(Linux Mint 13)中的 /etc/ldap/ldap.conf:

    base dc=backendA 
    uri ldaps://ldap.x.example.com
    ldap_version 3 
    binddn cn=auth,dc=backendA 
    bindpw admin@123 
    referrals yes 

客户端中的 /etc/ldap.conf:

    base dc=backendA 
    uri ldaps://ldap.x.example.com 
    ldap_version 3
    binddn cn=auth,dc=backendA
    bindpw admin@123 
    rootbinddn cn=admin,dc=backendA 
    pam_password md5 

    deref always 
    referrals yes 

    nss_base_passwd    ou=users,dc=backendA?one
    nss_base_shadow    ou=users,dc=backendA?one
    nss_base_group    ou=roles,dc=backendA?one 

    nss_base_passwd    ou=users,dc=backendB?one
    nss_base_shadow    ou=users,dc=backendB?one
    nss_base_group     ou=roles,ou=users,dc=backendB?one

可能出了什么问题?

答案1

getent passwd 只是其中的一部分,它表明系统可以看到用户并且 ldap 正在运行,但 su 可能也在使用 PAM,而 PAM 有自己的一套规则,而不仅仅是系统用户列表。由于您使用的是 MINT,因此您肯定在使用 PAM。

检查 /etc/pam.d/su 文件及其加载的任何文件。你肯定缺少其中的 ldap 配置。使用这个文件作为配置它的基础。

相关内容