Ubuntu 18.04下GDM3配置LDAP后GUI登录循环问题求助
我之前在Ubuntu 18.04上折腾GDM3和LDAP的时候也碰到过一模一样的登录循环问题——终端能正常进,换LightDM就没问题,折腾了好一阵才找到几个有效的排查方向,给你参考:
给GDM3单独配置PAM的主目录自动创建规则
你已经在common-session里加了pam_mkhomedir.so,但GDM3有自己专属的PAM配置文件,可能没继承到这个规则。打开/etc/pam.d/gdm-password和/etc/pam.d/gdm-launch-environment,在session段里也加上这行:session required pam_mkhomedir.so umask=077 skel=/etc/skel保存后重启GDM3试试:
sudo systemctl restart gdm3检查LDAP用户主目录的权限和AppArmor限制
终端登录对权限要求没那么严,但GDM3特别敏感。你可以先手动创建一个LDAP用户的主目录测试:sudo mkdir /home/你的LDAP用户名 sudo chown 你的LDAP用户名:你的LDAP用户组 /home/你的LDAP用户名 sudo chmod 700 /home/你的LDAP用户名另外Ubuntu 18.04默认开了AppArmor,可能限制了GDM访问LDAP用户目录。可以临时关掉AppArmor测试:
sudo systemctl stop apparmor,如果能正常登录了,再去调整GDM的AppArmor规则。扒日志找具体报错
登录循环肯定是某个环节出了问题,看日志能快速定位:- 看GDM的运行日志:
journalctl -u gdm3 - 看PAM的认证日志:
sudo tail -f /var/log/auth.log - 看Xorg的启动日志:
cat /var/log/Xorg.0.log
比如我当时就是日志里看到"Permission denied when accessing ICEauthority",才发现是主目录权限的问题。
- 看GDM的运行日志:
清空GDM缓存并调整配置
GDM有时候会缓存用户信息导致异常,先清空缓存:sudo rm -rf /var/cache/gdm3/* sudo systemctl restart gdm3再打开
/etc/gdm3/custom.conf,确保[daemon]段里的配置没问题:[daemon] EnforceRemoteLogin=false AllowRemoteAutoLogin=false验证LDAP客户端和nsswitch配置
确认/etc/nsswitch.conf里的用户信息查询包含LDAP:passwd: compat systemd ldap group: compat systemd ldap shadow: compat ldap同时检查
/etc/ldap.conf(或/etc/ldap/ldap.conf)里的主目录映射是否正确,比如要有nss_homedir_attribute homeDirectory这行,确保LDAP服务器返回的主目录路径能被识别。
如果以上都试过还是不行,那就试试重装GDM3,可能是配置文件损坏了:
sudo apt purge gdm3 sudo apt install gdm3 sudo dpkg-reconfigure gdm3
内容的提问来源于stack exchange,提问作者pid_wolf

