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 或其他原因的错误。从那里,它是一帆风顺的:
...因此调整他们的答案:
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 并保持登录状态 - 没有骰子。大概它有时可以工作,一天后或其他什么。
我正在尝试在 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 或其他原因的错误。从那里,它是一帆风顺的:
...因此调整他们的答案:
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 并保持登录状态 - 没有骰子。大概它有时可以工作,一天后或其他什么。