pam_mkhomedir.so が nslcd + LDAP (Active Directory) で動作しない

pam_mkhomedir.so が nslcd + LDAP (Active Directory) で動作しない

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 バックエンド) のloginShellto属性/bin/bashhomeDirectoryto属性の両方を設定することで、この問題を解決できました。/home/username

この属性が設定されると、pam_mkhomedir.soによってユーザーのホームディレクトリが正常に作成されます。

残念ながら、nslcd でこれらの値をローカルで上書きすることはできませんでした。これは、私たちのケースでははるかに理想的でしたが、これらの属性を AD で直接設定すると、問題は修正されました。

関連情報