是否需要在Ubuntu客户端和ldap之间同步用户?

我在超级用户上发布了类似的问题

我试图configurationUbuntulogin到LDAP。 我遇到了几个相关的post,但我仍然感到困惑:

pam_ldap如何findldap用户? 我必须在ldap中为每个用户在/ etc / passwd中手动创build一个条目吗?

我问的原因是因为我似乎能够对ldap进行身份validation,只要我在/ etc / passwd文件中有对应于ldap中的uid的用户名。

例如, user1有一个本地帐户(我用adduser创build的)。 还有一个ldap用户uid=user1,ou=people,dc=mydomain,dc=com 。 user1的本地密码与具有相同uid的ldap的密码不同。 我可以用这两个密码login。 另外,如果我注释掉common-auth中的pam_unix行,它只会让我使用在ldap中定义的密码。

所以,我很确定pam_ldap正在工作。 但是,当我尝试使用ldap中定义的用户(但是在/ etc / passwd中没有条目)login时,auth.log显示“无效的用户”。

那么,我一定要错过一步? 有没有办法将ldap用户同步到/ etc / passwd中? 或者,也许有一个configuration选项,让一个LDAP用户第一次尝试loginpam_ldap创build一个相应的本地帐户?

您应该在nsswitch.conf为passwd使用ldap模块。 用户的密码input与其authentication机制无关联; 如果这是一个很好的解决scheme,那么将它们都保存在LDAP中是非常方便的。

 passwd: db ldap files 

是一个很好的入口。

您还需要确保/etc/ldap.conf文件已正确configuration,尽pipe默认值(除了base和host当然;))可能工作得很好。 最后,确保安装了ldap nss模块。

你可能需要添加一个指令到common-password来加载pam-ldap。 pam ldap模块应该有从ldap创build用户的选项。

编辑:用户/ homedir创build实际上是从另一个模块照顾,而不是pam-ldap。

Debian在这里有一个很好的广泛指南: http : //wiki.debian.org/LDAP/PAM

看看pam_mkhomedir在该页面上的用法。