Ubuntu 18.04 中的 GDM3 + LDAP

GDM3 + LDAP in Ubuntu 18.04

我正在尝试在 Ubuntu 18.04 中使用 GDM3 (3.28.0) 配置 LDAP。

但我只能用 ldap 用户登录终端。在 GUI 中我无法登录(著名的 GDM 循环登录)。

我配置 pam 以创建主文件夹:

vim /etc/pam.d/common-session
session required     pam_mkhomedir.so       umask=077 skel=/etc/skel

但是,这还不够!

我安装了lightdm,在这个GUI中,我可以登录!

有什么建议吗?

谢谢!

我通过安装 nscd 服务解决了这个问题。

听起来可能与我在使用 NIS 时遇到的问题相同,我在启动后一天左右无法登录。为了弄清真相,我必须:

  • strace -f gdm
  • 发现它的 gdm-session-worker child 从 dbus-daemon
  • 返回一个 FileNotFound 错误
  • 用 strace 发现 dbus-daemon 只是从另一个 UNIX 域套接字获取它
  • 使用 sudo ss -anp 查找来自 systemd-logind
  • strace -s1000 找到它,就在它查看 yp 绑定文件之后但在使用 FileNotFound 执行 sendmsg 之前,它得到:

socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) = -1 EAFNOSUPPORT (Address family not supported by protocol)

...想“哈,这怎么会失败呢?”并为“logind nis”尝试 Google。显然,通过网络查找用户组或 logind 在这里所做的任何事情都是不安全的,至少在没有一些单独的 locked-down 守护程序的情况下是不安全的。您可能认为它被认为足够重要,值得一个合理的错误消息,但我想,这可能是 nscd 或 nss-nis 或其他原因的错误。从那里,它是一帆风顺的:

https://wiki.archlinux.org/index.php/NIS#Attention_on_Systemd_V235_since_10/2017_(and_V239_since_06/2018)

...因此调整他们的答案:

sudo mkdir /etc/systemd/system/systemd-logind.service.d/
sudo tee /etc/systemd/system/systemd-logind.service.d/open_network_interface.conf <<EOF
[Service]
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
IPAddressAllow=any
EOF
sudo systemctl daemon-reload
sudo systemctl restart systemd-logind

那个 wiki 上关于 IPAddressAllow=any 不覆盖默认值的警告似乎对我今天在 Debian Buster 上不适用。简单地做一个 daemon-reload,你会想,但没有。 nscd 也被列为那里的解决方案,但我们已经安装了它并且我尝试在之前立即登录不同的 VT 并保持登录状态 - 没有骰子。大概它有时可以工作,一天后或其他什么。