我有一台 LDAP 服务器,我想用这台 LDAP 服务器登录我的机器。这基本上可以实现,但是当 LDAP 服务器不在身边时(例如在办公室外使用笔记本电脑),身份验证就会失败。
我尝试了几种方法来解决这个问题。
(1)pam_ccreds.so:我遵循了这个https://help.ubuntu.com/community/PamCcredsHowto文档但最终登录失败:
> su testuser
Password: <pwd entered>
You have been logged on using cached credentials.
su: Authentication failure
也就是说,显然某物有效,但是其他一些事情后来没有。这发生在其他人但所谓的解决方案(如果 LDAP 服务器无法访问则允许)似乎根本不是一个解决方案。
(2)我摆弄了一下 nslcd。我添加了一些调试输出,发现了以下内容:
<passwd=4294967295> DEBUG: myldap_search(base="ou=people,dc=mydomain,dc=mytld", filter="(&(uid=*)(uidNumber=4294967295))")
UID 4294967295 对我来说是可疑的(它实际上应该是 1000002),是的,还有其他关于该 UID 的报告(在 int 的有符号表示中为 -1),但所有这些报告和解决方案似乎都与 samba 和/或 winbind 有关——在我的设置中并非如此。
所以我已经花了很多时间,我只是在尝试,因为我实际上不明白使用 nlscd 的凭证缓存到底是如何工作的。我想我已经掌握了 pam_ccred,但从我在网上找到的信息来看,我得到的印象是,这个东西从来没有真正与 LDAP 一起工作过,并且/或者没有真正维护过。
我的具体问题是:
- 在 Ubuntu(16.04)客户端系统上,当无法访问 LDAP 服务器时,是否有推荐的方法可以使用 LDAP 用户/密码登录?
- 当事情没有按预期进行时,我可以采取哪些措施来产生合理的调试输出(例如 nslcd)?
- 奇怪的UID从何而来?
非常感谢您做出的任何努力、指点或意见!
答案1
虽然可以使用 pam-ldapd/pam-ccreds 等构建所需的设置,但使用以下命令更容易获得相同的结果ssd 的(以及 pam-sssd 和 nss-sssd)。参见例如https://wiki.ubuntu.com/Enterprise/Authentication/sssd