我最近在这里问了一个关于让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
要填充用户属性,您可以使用ldapadd和ldapmodify工具。