如何将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 389telnet 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