У меня есть компьютерная комната, в которой для аутентификации пользователей используются libpam-pgsql и libnss-pgsql2. Сейчас система отлично работает с клиентами Debian 8.
Я хочу выполнить обновление и пытаюсь настроить клиенты Debian 10 для работы с той же настройкой, но это не работает.
getent, id и сам процесс аутентификации работает, но я не могу получить оболочку или графический сеанс с sddm. При подключении с помощью ssh к одному из клиентов Debian 10 с пользователем, хранящимся в базе данных PostgreSQL, он показывает MOTD (сообщение дня) и время последнего входа в систему, но не более того. Нет оболочки, нет подсказки. Запустив ps с другого терминала с правами root, я могу видеть процесс bash удаленного пользователя, но пользователь не может делать ничего, что требует взаимодействия.
Как root я могу запустить что-то, что не требует tty, например sudo -u 285803 touch /tmp/testfile
(будучи 285803 пользователем, хранящимся в базе данных postgresql), и он работает. Файл находится там и принадлежит правому пользователю в нужной группе.
journalctl показывает:
oct 16 15:01:23 sala-puesto99 systemd-logind[1497]: Could not connect to database
oct 16 15:01:23 sala-puesto99 sshd[1793]: pam_systemd(sshd:session): Failed to create session: No such file or directory
Сообщение «Не удалось подключиться к базе данных» появляется, когда пользователь без полномочий root пытается получить доступ к теневой базе данных. Я не знаю, как это возможно, поскольку systemd-logind работает как root. «Нет такого файла или каталога» не может быть о домашнем пути, поскольку путь существует и принадлежит пользователю.
Я думаю, что это должно быть связано с tty-доступом, pam_systemd или systemd-logind.
Любая помощь, пожалуйста?
Я сам отвечу. Может быть, это может быть полезно другим людям.
Я обнаружил, что логин работает при запущенном nscd.
Когда nscd запущен, я могу отлично войти в систему. Когда nscd не запущен, он не работает.
Ссылка на аналогичную проблему есть по адресу: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=279581 Это ошибка 2004 года, но похоже, что патч был написан для предыдущего выпуска (1.3.1) и не может быть применен к текущему (1.4)