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

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

如何将 Ubuntu 12.04 配置为具有 PAM 模块的 LDAP 客户端?

答案1

本文内容基于本指南。它在 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 服务器未运行或者某些因素(例如防火墙)阻碍了连接。

答案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

相关内容