登录不适用于 PAM/NSS

登录不适用于 PAM/NSS

我有一个计算机房,使用 libpam-pgsql 和 libnss-pgsql2 进行用户身份验证。目前,该系统与 Debian 8 客户端运行良好。

我想升级,并尝试设置 Debian 10 客户端以使用相同的设置,但它不起作用。

getent、id 和身份验证过程本身可以工作,但我无法获得 shell 或使用 sddm 的图形会话。使用 ssh 连接到 Debian 10 客户端之一,该客户端的用户存储在 PostgreSQL 数据库中,它会显示 MOTD(当天消息)和上次登录时间,但仅此而已。没有 shell,没有提示。以 root 身份从另一个终端运行 ps,我可以看到远程用户的 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 用户尝试访问 shadow DB 时,会出现“无法连接到数据库”的信息。我不知道这是怎么回事,因为 systemd-logind 是以 root 身份运行的。“没有这样的文件或目录”不可能与主路径有关,因为该路径存在且属于用户。

我认为它一定与 tty 访问、pam_systemd 或 systemd-logind 有关。

请问有什么帮助吗?

答案1

我会自己回答。也许这对其他人有用。

我发现当 nscd 运行时登录有效。

当 nscd 运行时,我可以完美登录。当 nscd 未运行时,它不起作用。

有一篇提到了类似的问题:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=279581这是 2004 年的一个错误,但补丁似乎是针对以前的版本 (1.3.1) 编写的,不能应用于当前版本 (1.4)

相关内容