2

我正在尝试在 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 中,我可以登录了!

有什么建议吗?

谢谢!

4

2 回答 2

9

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

于 2018-06-25T20:57:24.650 回答
3

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

  • strace -f gdm
  • 发现它的 gdm-session-worker 子从 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)

......想想“嗯,这到底怎么会失败?” 并尝试使用 Google 搜索“logind nis”。显然,通过网络查找用户组或登录在此处所做的任何事情是不安全的,至少在没有一些单独的锁定守护程序的情况下是不安全的。你可能认为它被认为足够重要,值得一个合理的错误消息,但我想这可能是 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。您会认为只需执行守护程序重新加载,但不是。nscd 也被列为那里的解决方案,但我们已经安装了它,我尝试在之前立即登录不同的 VT 并保持登录状态 - 没有骰子。据推测,它有时会在一天或其他任何时间后起作用。

于 2019-11-09T01:41:49.040 回答