我目前正在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