Ubuntu LDAP制作主目录

我最近在这里问了一个关于让Ubuntu通过LDAP进行身份validation的问题 。 好消息是,我得到它的工作,客户正在进行身份validation,但现在我的问题是,pam_mkhomdir.so似乎并没有这样做的工作。 这是我的常用会话文件:

会话足够pam_ldap.so
 session [default = 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用户尝试login时,gdm都会告诉他们他们的主目录设置为/Network/[Servername]/User/[username] 。 基于这个错误,我猜pam_mkhomedir.so被LDAP提供的主path覆盖,所以我的问题是:有没有办法让LDAP用户的主目录在本地创build,而不是尝试login使用/Volumes/[Servername]/...

提前致谢

更新:卡米尔的回应似乎已经取得了一些进展,但不是gdm报告主目录被设置为/Network/etc... ,这是说它被设置为'' (空)。 我试过使用

 nss_map_attribute homeDirectory "/home/$username" 

但是这给了我同样的错误。 有任何想法吗?

我们解决这个问题的方法是向LDAP添加另一个属性,比如linuxHomeDirectory 。 然后你可以在ldap.conf创build一个映射:

 nss_map_attribute homeDirectory linuxHomeDirectory 

对于每个用户,您都将LDAP中的属性设置为您的Linux主目录所需的path,例如/home/$username或whatnot。

如果您的主目录是从OS X服务器提供的,则可以在Linux上的/Volumes/$servername/$path层次结构中安装自动挂载程序,然后不需要执行任何LDAP属性修改。

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

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