如何将 Ubuntu 12.04 配置为具有 PAM 模块的 LDAP 客户端?
答案1
本文内容基于本指南。它在 12.04 中应该可以正常工作。
发出以下命令:
sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
笔记:在安装上述软件包期间,将弹出一个对话框并询问一些 LDAP 配置。请确保为您的 LDAP 配置输入正确的值。
编辑
/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
注释掉该行
rootbinddn
,我不确定我们为什么需要这样做。编辑
/etc/pam.d/login
(通过 sudo)并粘贴:session required pam_mkhomedir.so skel=/etc/skel umask=0022
编辑
/etc/pam.d/lightdm
(通过 sudo)并粘贴:session required pam_mkhomedir.so skel=/etc/skel umask=0022
发出此命令:
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 服务器未运行或者某些因素(例如防火墙)阻碍了连接。
答案2
为了在登录时自动创建主目录,我必须输入以下行:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
/etc/pam.d/common-session
而不是-/etc/pam.d/login
当我刚刚在稍后创建我的主目录时。
答案3
sudo apt-get install ldap-utils libpam-ldap libnss-ldapd nslcd
改用 libnss-ldapd。
每个错误:https://bugs.launchpad.net/ubuntu/+source/libnss-ldap/+bug/1024475
答案4
关于在 lightdm 欢迎程序中输入用户名,从 16.04 开始,lightdm-set-defaults 命令已经消失。
相反,您可以将输入用户名的选项添加到 lightdm 配置文件中。例如,创建文件 /etc/lightdm/lightdm.conf 并添加以下几行:
[SeatDefaults]
greeter-show-manual-login=true