Ubuntu LDAP 创建主目录

Ubuntu LDAP 创建主目录

我最近问了一个问题这里介绍了如何让 Ubuntu 通过 LDAP 针对 OS X 服务器进行身份验证。好消息是,我让它工作了,客户端现在正在进行身份验证,但现在的问题是 pam_mkhomdir.so 似乎没有发挥作用。这是我的通用会话文件:

会话足够的pam_ldap.so
会话[默认=1] pam_permit.so
会话必需 pam_deny.so
会话需要 pam_permit.so
会话需要 pam_unix.so
会话需要 pam_mkhomedir.so skel=/etc/skel/
会话可选 pam_ldap.so
会话可选 pam_ck_connector.so nox11
会话可选 pam_foreground.so

因此,每次 LDAP 用户尝试登录时,gdm 都会告诉他们其主目录已设置为/Network/[Servername]/User/[username]。 根据此错误,我猜测 pam_mkhomedir.so 被 LDAP 提供的主路径覆盖,所以我的问题是:有没有办法让 LDAP 用户的主目录在他们登录时在本地创建,而不是尝试使用/Volumes/[Servername]/...

提前致谢

更新:Kamil 的回复似乎取得了一些进展,但 gdm 并没有报告主目录设置为/Network/etc...,而是说它设置为''(null)。我尝试使用

nss_map_attribute homeDirectory "/home/$username"

但这给了我同样的错误。有什么想法吗?

答案1

我们解决这个问题的方法是向 LDAP 添加另一个属性,类似于linuxHomeDirectory。然后您可以在中创建映射ldap.conf

nss_map_attribute homeDirectory linuxHomeDirectory

对于每个用户,您可以将 LDAP 中的属性设置为其 Linux 主目录的路径,例如/home/$username或诸如此类。

如果您的主目录由 OS X 服务器提供,那么您可以在/Volumes/$servername/$pathLinux 的层次结构中使用自动挂载程序挂载这些目录,这样您就不需要进行任何 LDAP 属性修改。

更多信息: 以下是一篇有关如何在 OpenDirectory 中扩展 LDAP 模式的文章:http://www.afp548.com/article.php?story=20060228230005854

要填充用户属性,您可以使用ldapaddldapmodify工具。

相关内容