Debian Jessie(具体来说,带有测试存储库的 Debian Server Wheezy x64)
OpenLDAP 2.4.39
libpam-ldapd 0.9.4-1
安装 libpam-ldapd 后,dpkg 配置要求提供我的 LDAP 地址信息(ldapi:\\localhost)并正确检测我的服务器库。
我尝试遵循Debian Wiki 文章但是其中引用的文件并不存在,而且很少有信息可以表明我如何确定 LDAP 正在被查阅。
我已经配置了 OpenLDAP,并加载了 inetorgperson 和 NIS 架构。用户应该具有所有正确的属性。现在,我只是想确定是否正在参考 LDAP,因为似乎没有。
答案1
当您运行 时getent passwd
,您是否看到列出了您的 LDAP 用户?如果没有,请确保libnss-ldapd
已安装,然后运行dpkg-reconfigure libnss-ldapd
并确保至少passwd
启用了数据库(您可能迟早也会需要)group
。shadow
如果getent passwd
提到您的 LDAP 用户但您无法以用户身份进行身份验证,请运行pam-auth-update
并确保 LDAP 身份验证已启用并nslcd
正在运行。
如果安装了nscd
(或某些变体,例如),我建议在进行故障排除时停止它,因为它可能会返回缓存的不准确数据。unscd
有关pam_ldap
正在做什么的信息已记录到/var/log/auth.log
;有关正在nslcd
做什么的信息已记录到/var/log/syslog
;另一方面slapd
,将日志级别调高到stats
将让您看到实际nslcd
发出的查询、查询是否成功以及返回的结果数。
希望有帮助!
答案2
如果您想在 Debian Jessie 下的网络上使用现有的 OpenLDAP 服务器,那么您应该使用以下软件包:
libnss-ldap
libpam-ldap
而不是
libnss-ldapd
libpam-ldapd
答案3
我有同样的问题。
我的症状是它getent passwd
可以工作,但是使用 samba 和 setquota 登录却不行。
dpkg-reconfigure libnss-ldapd
运行并启用后passwd
,它现在运行正常。group
shadow