在linux smb / cifs服务器(例如samba)上没有sambaSamAccount的ldap-authentication

我目前正在debian / wheezy主机上运行samba-3.5.6,作为我们部门的w32客户端的文件服务器。 身份validation是通过OpenLDAP完成的,其中每个用户dn都有一个objectclass:sambaSamAccount(持有smb凭证)和一个objectclass:shadowAccount / posixAccount用于“普通”身份validation(例如,pam,apache,…)

现在我们想转储我们部门的用户数据库,而是使用我们的上游组织的用户数据库进行身份validation。 这些用户帐户在novell-edirectory中进行pipe理,我已经可以使用pam进行身份validation(例如,在另一台主机上使用ssh-logins进行身份validation)。 我们的上游组织提供基于smb / cifs的访问(通过一些novell服务)到一些目录,我可以通过smbclient从我的Linux客户端访问。

我目前无法做到的是使用upstream-ldap(eDirectory)来validation我们机构的桑巴舞:

我configuration我的samba服务器对上游ldap服务器auth:

 passdb backend = ldapsam:ldaps://ldap.example.com 

但是当我尝试validation用户,我得到:

 $ smbclient -U USER \\\\SMBSERVER\\test Enter USER's password: Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6] tree connect failed: NT_STATUS_ACCESS_DENIED 

日志文件显示:

 [2012/10/02 09:53:47.692987, 0] passdb/secrets.c:350(fetch_ldap_pw) fetch_ldap_pw: neither ldap secret retrieved! [2012/10/02 09:53:47.693131, 0] lib/smbldap.c:1180(smbldap_connect_system) ldap_connect_system: Failed to retrieve password from secrets.tdb 

我看到我有两个问题:

  • 我没有任何pipe理员密码的上游ldap(很可能,他们不会给我一个)。 我只想validation我的用户,写入访问是根本不需要的。 我可以离开吗?

  • 上游ldap在数据库中没有任何与samba相关的属性。 我的印象是,对于samba来进行身份validation,这些属性是必需的,因为smb / cifs使用一些不常用的posixAccount哈希值的一些简单的哈希值。

有没有办法让我部门的samba服务器对这样的ldap服务器进行身份validation?

您需要在samba中设置ldap密码。 (EG,如果你的admindn是用户pipe理员)

 smbpasswd -w admin