加入域的 Linux - PAM mkhomedir 创建作为 SSH root 拥有的 homedirs

加入域的 Linux - PAM mkhomedir 创建作为 SSH root 拥有的 homedirs

目前,我有一组 Linux 计算机加入到活动目录域,并使用 SSSD 进行用户管理 - 主要是 ubuntu,还有一些 Raspian。

我使用 pam_mkhomedir.so 通过 /etc/pam.d/common-session 在本地为任何域登录创建主目录。

session required pam_mkhomedir.so skel=/etc/skel/ umask=0077

这对于本地控制台登录以及su [domainuser].它在 /home/[domain]/[user] 中创建目录。但是,当用户首次登录是通过 SSH(服务器通常是这种情况)时,它会导致该目录由 root:root 拥有,而不是正确的用户。

我一直在为这个而抓狂,尝试任何我能找到的东西。有任何想法吗?

答案1

事实证明这是一些不相关的事情 - DOH。

它正在为 ssh AuthorizedKeysCommand 运行自定义 bash 脚本,以从 LDAP 属性获取密钥。它正在将密钥的缓存版本写入用户的主目录,并且如果路径不存在则创建该路径

事实证明,这导致 pam_mkhomedir 永远无法运行,因为该目录已经存在,至少在我使用基于密钥的身份验证时是这样。因此,pam mkdir 根本不是问题。

一旦我删除了这个脚本,它就完美地工作了。我现在重写了脚本,将 ssh 密钥缓存存储在主目录之外,并且一切都按预期工作。

只是将其记录在这里,以提醒其他可能遇到类似问题的人 - 跳出框框思考,并确保 pam_mkhomedir 在应该运行时实际运行,尤其是在自定义脚本运行时。

相关内容