我正在尝试pam_mkhomedir.so
在首次登录时创建 LDAP 用户的本地主目录。我在使用 Ubuntu 20.04 LTS。
目前,用户通过 LDAP(Active Directory 后端)添加到我的服务器。这已使用 nslcd + nscd 配置。我按照此处的指南完成了所有配置:https://www.markturner.net/2019/09/27/ad-ldap-authentication-on-linux-hosts/
不幸的是,我似乎无法生成用户的主目录。更奇怪的是,当我深入调试时,发现用户的主目录是空白的。
以下是用户“jgoetz”尝试通过 SSH 连接的示例。用户可以登录,组工作正常,但无法创建主目录:
Oct 15 21:56:10 LDAP-Test6 sshd[3425]: Accepted password for jgoetz from 10.100.98.23 port 52602 ssh2
Oct 15 21:56:10 LDAP-Test6 sshd[3425]: pam_unix(sshd:session): session opened for user jgoetz by (uid=0)
Oct 15 21:56:10 LDAP-Test6 systemd-logind[689]: New session 16 of user jgoetz.
Oct 15 21:56:10 LDAP-Test6 mkhomedir_helper: PAM unable to create directory : No such file or directory
从最后一行可以看出,mkhomedir_helper 甚至没有尝试在 /home 中创建目录,从而导致错误。
有人能给我指出正确的方向吗?
感谢您的时间!
答案1
更新:我能够通过为每个用户在 Windows Active Directory(在我们的例子中是 LDAP 后端)中设置loginShell
to/bin/bash
和homeDirectory
to属性来解决这个问题。/home/username
一旦设置了此属性,用户的主目录就会通过 pam_mkhomedir.so 成功创建
不幸的是,我无法让 nslcd 在本地覆盖这些值,这在我们的例子中会更加理想,但直接在 AD 中设置这些属性确实解决了这个问题。