登录而不是 chdir()ing 到正确的主目录 (AD/realmd/sssd)

登录而不是 chdir()ing 到正确的主目录 (AD/realmd/sssd)

我被迫(呃)将几台 Linux 机器加入到一个域中。我目前正在使用 debian stable,并且正在使用我编写的连接脚本(位于https://rbmj.github.io/join.sh以供参考)。该设置使用领域和 sssd 进行所有连接魔法,并使用 pam_mkhomedir 来创建主目录。机器是 debian 稳定的。

getent passwd $USER显示正确的 uid/gid 和主目录设置为/home/$DOMAIN/$USER应有的样子。

问题是登录时 pam_mkhomedir.so 在正确的位置 ( /home/$DOMAIN/$USER) 创建主目录,但登录尝试chdir()进入/home/$USER

我当前使用的解决方法是符号链接/home/$DOMAIN/home,其中一个丑陋的符号链接循环,但它现在已经完成了工作。一旦我弄清楚这一点,迁移应该相当简单,因为只有一两个系统帐户,所以我可以通过脚本移动其余的帐户。

由于这是一台最近安装的 debian 稳定机器,我认为这是一个 systemd 问题,因为我相信标准登录守护进程已被 systemd-logind 或类似的 cruft 取代。我认为这是某个地方的错误,因为登录应该尝试将目录更改为 nsswitch 指示的用户正确的主目录,但我不是专家。

答案1

systemd 在这里出错的可能性极小。 Logind 不执行任何与主目录相关的操作(它负责为本地登录授予访问本地硬件的权限,而不为远程登录授予访问本地硬件的权限,这样通过 SSH 登录的人就无法偷看您的网络摄像头)。

相反,更有可能的是你没有把每件事都做对。

运行脚本后,请显示 PAM 配置文件的内容。最有可能的是,你错过了一点。

尝试禁用nscd,以确保这不是缓存问题。

检查你的/etc/skel;确保它不包含对 的硬编码引用/home/$USER

相关内容