GDM3 + LDAP в Ubuntu 18.04

Я пытаюсь настроить LDAP с помощью GDM3 (3.28.0) в Ubuntu 18.04.

Но я могу просто войти в терминал с пользователями ldap. В GUI я не могу войти (известный вход в систему GDM петли).

Я настраиваю pam для создания домашней папки:

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

Но этого было недостаточно!

Я установил lightdm, и в этом графическом интерфейсе я могу войти!

Любое предложение?

Спасибо!

1 ответ

Решение

Я решил проблему, установив службу nscd.

Похоже, это та же проблема, что и у меня с NIS, когда я не мог войти в систему в течение дня или около того после загрузки. Чтобы разобраться в этом, мне пришлось:

  • strace -f gdm
  • обнаруживает, что его дочерний элемент gdm-session-worker получает ошибку FileNotFound от dbus-daemon
  • найти с помощью strace, что dbus-daemon просто получает его из другого сокета домена UNIX
  • используйте sudo ss -anp, чтобы найти это из systemd-logind
  • strace -s1000, чтобы найти это, сразу после просмотра файла привязки yp, но до выполнения sendmsg с FileNotFound он получает:

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

... подумайте: "Ага, как это может быть?" и попробуйте Google для "logind nis". По-видимому, небезопасно искать группы пользователей или что-то, что здесь делает logind, по сети, по крайней мере, без какого-либо отдельного заблокированного демона. Вы могли подумать, что это было сочтено достаточно важным, чтобы заслужить разумное сообщение об ошибке, но я полагаю, что это могло быть ошибкой 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

Предупреждение в этой вики о IPAddressAllow=any not overriding the default, похоже, не применимо для меня сегодня к Debian Buster. Вы могли бы подумать, что просто выполняем перезагрузку демона, но нет. nscd тоже указан как решение, но оно у нас установлено, и я попытался войти в систему на другом VT непосредственно перед этим и оставаться в системе - без кубиков. По-видимому, иногда это может сработать через день или что-то еще.

Другие вопросы по тегам