问题描述
如何使用 PAM 模块将 Ubuntu 12.04 配置为 LDAP 客户端?
最佳回答
这篇文章的内容基于 this guide 。它应该在 12.04 中正常工作。
-
发出以下命令:
\n
sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd\n
\n
注意:在安装上述软件包的过程中,会弹出一个对话框并询问一些 LDAP 配置。请务必为您的 LDAP 配置输入正确的值。
-
编辑
/etc/nsswitch.conf
(通过 sudo)。将 “ldap” 附加到这些行:\n
#Original file looks like this \npasswd: compat \ngroup : compat \nshadow: compat \n\n#After appending "ldap" lines look like these\npasswd: compat ldap\ngroup : compat ldap \nshadow: compat ldap \n
-
注释掉
rootbinddn
行,我不确定我们为什么需要这样做。 -
编辑
/etc/pam.d/login
(通过 sudo)并粘贴:\n
session required pam_mkhomedir.so skel=/etc/skel umask=0022 \n
-
编辑
/etc/pam.d/lightdm
(通过 sudo)并粘贴:\n
session required pam_mkhomedir.so skel=/etc/skel umask=0022 \n
-
发出此命令:
\n
sudo update-rc.d nslcd enable\n
重新启动后,您应该能够以 LDAP 用户身份登录。\n如果您不重新启动计算机,则必须重新启动 nscd:
/etc/init.d/nscd restart
可能的问题和解决方案:
-
以 LDAP 用户身份登录需要很长时间(分钟):nss-lap 很可能在查找用户组时遇到问题。确保用户在本地识别的组中,或者用户在 LDAP 中定义的组中。如果组是在 LDAP 中定义的,请确保它是一个真正的 POSIX 组。
-
始终检查
/var/log/auth.log
日志文件。如果您看到“无法联系 ldap 服务器”,请检查 LDAP 服务器是否可达并且端口是否打开。 -
尝试按名称 ping LDAP 服务器
-
尝试检查 LDAP 端口是否打开:\n\n
-
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
– 当我刚刚在后来我的主目录中没有创建它时。