如何将Ubuntu配置为LDAP客户端?
如何使用pam模块将ubuntu 12.04配置为ldap客户端?
本文的内容基于本指南 。 它应该在12.04正常工作。
1)发出以下命令:
sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
注意:在安装上述软件包期间,将弹出一个对话框,询问有关某些LDAP配置的信息。 请务必为LDAP配置输入正确的值。
2)编辑/etc/nsswitch.conf
(通过sudo)。 在这些行中添加“ldap”:
#Original file looks like this passwd: compat group : compat shadow: compat #After appending "ldap" lines look like these passwd: compat ldap group : compat ldap shadow: compat ldap
3) rootbinddn
这一行,我不知道为什么我们需要这样做。
4)编辑/etc/pam.d/login
(通过sudo)并粘贴:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
5)编辑/etc/pam.d/lightdm
(通过sudo)并粘贴:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
6)发出以下命令:
sudo update-rc.d nslcd enable
您应该能够在重新启动后以LDAP用户身份登录。 如果不重新启动计算机,则必须使用以下命令重新启动nscd:
/etc/init.d/nscd restart
可能的问题和解决方案:
- 以LDAP用户身份登录需要很长时间(分钟):nss-lap很可能在查找用户组时遇到问题。 确保用户位于本地可识别的组中,或者用户位于LDAP中定义的组中。 如果在LDAP中定义了组,则确保它是一个真正的POSIX组。
- 始终检查
/var/log/auth.log
日志文件。 如果您看到“无法联系ldap服务器”,请检查LDAP服务器是否可访问且端口是否已打开。 - 尝试按名称ping LDAP服务器
- 尝试检查LDAP端口是否已打开:
- LDAP可以在不同的端口上侦听,但通常可以在389和636上找到
- 您可以使用telnet检查端口是否已打开:
-
telnet 389
或telnet 636
- 如果在控制台上看到任何字符,则表示端口已打开且LDAP服务器应该正在运行。
- 如果您什么也看不到或收到错误消息,则LDAP服务器未运行或某些内容(例如防火墙)阻止连接。
要在登录时自动创建主目录,我不得不把这行:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
进入/etc/pam.d/common-session
而不是/etc/pam.d/login
– 当我刚刚在我的主目录中使用它时没有创建。
sudo apt-get install ldap-utils libpam-ldap libnss-ldapd nslcd
请改用libnss-ldapd。
每个bug: https : //bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475
为了能够输入用户名,您必须使用以下命令修改lightdm configuration
:
/usr/lib/lightdm/lightdm-set-defaults -m true
关于在ligthdm greeter中输入用户名,从16.04开始,lightdm-set-defaults命令就消失了。
相反,您可以添加用于键入lightdm配置文件的用户名的选项。 例如,创建文件/etc/lightdm/lightdm.conf并添加以下行:
[SeatDefaults] greeter-show-manual-login=true