如何将 Ubuntu 配置为 LDAP 客户端?

fel*_*ip3 22 ldap client

如何使用 PAM 模块将 Ubuntu 12.04 配置为 LDAP 客户端?

小智 16

这篇文章的内容基于本指南。它应该在 12.04 中正常工作。

  1. 发出以下命令:

    sudo apt-get install ldap-utils libpam-ldap libnss-ldap nslcd
    
    Run Code Online (Sandbox Code Playgroud)

    注意:在安装上述软件包的过程中,会弹出一个对话框,询问一些 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 
    
    Run Code Online (Sandbox Code Playgroud)
  3. 注释掉这一行rootbinddn,我不确定为什么我们需要这样做。

  4. 编辑/etc/pam.d/login(通过 sudo)并粘贴:

    session required pam_mkhomedir.so skel=/etc/skel umask=0022 
    
    Run Code Online (Sandbox Code Playgroud)
  5. 编辑/etc/pam.d/lightdm(通过 sudo)并粘贴:

    session required pam_mkhomedir.so skel=/etc/skel umask=0022 
    
    Run Code Online (Sandbox Code Playgroud)
  6. 发出这个命令:

    sudo update-rc.d nslcd enable
    
    Run Code Online (Sandbox Code Playgroud)

重新启动后,您应该能够以 LDAP 用户身份登录。如果您不重新启动机器,则必须使用以下命令重新启动 nscd:

/etc/init.d/nscd restart
Run Code Online (Sandbox Code Playgroud)

可能的问题和解决方案:

  • 以 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 服务器未运行或某些东西(例如防火墙)阻止了连接。


小智 5

要在登录时自动创建主目录,我必须放置以下行:

session required pam_mkhomedir.so skel=/etc/skel umask=0022
Run Code Online (Sandbox Code Playgroud)

into/etc/pam.d/common-session而不是/etc/pam.d/login- 当我刚刚拥有它时,我的主目录没有被创建。