Сервер 16.04: включение аутентификации LDAP приводит к ошибке systemd-logind

Я здесь в тупике, извините, если мне не хватает чего-то очевидного. У меня был сервер 16.04, прошедший аутентификацию против LDAP, который в последний раз прекратил работать, я запускал обновления, и я построил чистый сервер 16.04 с нуля, запускал стандартные обновления и отлично работает, пока не включу аутентификацию LDAP. Я могу отключить LDAP, а затем он снова работает.

me@myserver:/etc# systemctl status systemd-logind.service
● systemd-logind.service - Login Service
   Loaded: loaded (/lib/systemd/system/systemd-logind.service; static; vendor preset: enabled)
   Active: activating (start) since Tue 2016-07-12 15:13:07 EDT; 19s ago
     Docs: man:systemd-logind.service(8)
           man:logind.conf(5)
           http://www.freedesktop.org/wiki/Software/systemd/logind
           http://www.freedesktop.org/wiki/Software/systemd/multiseat
 Main PID: 2106 (systemd-logind)
    Tasks: 1
   Memory: 228.0K
      CPU: 2ms
   CGroup: /system.slice/systemd-logind.service
           └─2106 /lib/systemd/systemd-logind

Jul 12 15:13:07 myserver systemd[1]: Starting Login Service...

Он некоторое время откажется, потерпит неудачу, а затем попробуйте снова начать в бесконечных циклах. Я могу войти в локальную учетную запись, но это занимает много времени.

me@myserver:/etc# systemd-analyze blame
Bootup is not yet finished. Please try again later.

Тем временем журналctll-xe возвращает свой собственный более подробный цикл:

me@myserver:/etc# journalctl -xe
-- Subject: Unit systemd-logind.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has failed.
-- 
-- The result is failed.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Unit entered failed state.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Failed with result 'exit-code'.
Jul 12 15:16:27 myserver systemd[1]: systemd-logind.service: Service has no hold-off time, scheduling restart.
Jul 12 15:16:27 myserver systemd[1]: Stopped Login Service.
-- Subject: Unit systemd-logind.service has finished shutting down
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has finished shutting down.
Jul 12 15:16:27 myserver systemd[1]: Starting Login Service...
-- Subject: Unit systemd-logind.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit systemd-logind.service has begun starting up.
Jul 12 15:16:52 myserver systemd-logind[2134]: Failed to enable subscription: Connection timed out
Jul 12 15:16:52 myserver systemd-logind[2134]: Failed to fully start up daemon: Connection timed out
Jul 12 15:16:52 myserver dbus[1012]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out
Jul 12 15:16:52 myserver systemd[1]: systemd-logind.service: Main process exited, code=exited, status=1/FAILURE
Jul 12 15:16:52 myserver systemd[1]: Failed to start Login Service.

У меня есть два десятка или около 14.04 серверов, работающих нормально с LDAP, тот же конфиг.

Я попытался вручную перезапустить systemd-logind, но он не работает.

Любые идеи? TIA.

(ETA: только что построила ту же самую систему на 14.04, и аутентификация LDAP работает нормально.)

Добавление dpkg.log info: в этом файле много шума, поэтому не знаю, что актуально и полезно, но вот то, что, как представляется, являются терминальными линиями обработки для связанных пакетов:

2016-07-11 13:52:08 status installed libldap-2.4-2:amd64 2.4.42+dfsg-2ubuntu3
2016-07-11 14:11:40 status installed libldap-2.4-2:amd64 2.4.42+dfsg-2ubuntu3.1
2016-07-11 15:02:45 status installed libnss-ldap:amd64 265-3ubuntu2
2016-07-11 15:02:45 status installed ldap-auth-client:all 0.5.3
2016-07-11 15:02:45 status installed ldap-auth-config:all 0.5.3
2016-07-11 15:02:45 status installed libpam-ldap:amd64 184-8.7ubuntu1
2016-07-11 15:04:12 status installed ldap-utils:amd64 2.4.42+dfsg-2ubuntu3.1

Мой LDAP-сервер находится в другом месте; этот сервер должен только аутентифицироваться против него как клиента. Конфигурационные файлы на /etc/ldap.conf и /etc/ldap/ldap.conf идентичны и, по-видимому, не изменялись между 14.04 и 16.04

Стоит отметить, что хотя аутентификация LDAP не работает, я может успешно выполнить запрос ldapsearch на сервере LDAP.

1
задан 18 July 2016 в 17:52

1 ответ

Способ предотвращения этой проблемы состоит в том, чтобы убедиться, что параметр nss_initgroups_ignoreusers - в /etc/ldap.conf (или /etc/libnss-ldap.conf, в зависимости от вашей системы) - заполняется всеми (локальными) пользователями в /etc/passwd: [ ! d0]

NSS_IGNOREUSERS="$(cut -d: -f1 /etc/passwd | sort | tr '\n' ',' | sed 's|,$||')"
sed -i "s|^nss_initgroups_ignoreusers.*|nss_initgroups_ignoreusers ${NSS_IGNOREUSERS}|" /etc/ldap.conf

Таким образом, когда запрашиваются системные загрузки и службы имен пользователей / групп для запуска локальных служб, не будет выдано больше «nss_ldap: не удается связаться с сервером LDAP» (поскольку соответствующие локальные user / group игнорируются NSS LDAP).

(этот вопрос существует уже много лет независимо от systemd)

1
ответ дан 23 May 2018 в 08:14

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

Похожие вопросы: