私は現在、debian/wheezyホストでsamba-3.5.6を実行して、部門のw32クライアントのファイルサーバーとして機能しています。認証はOpenLDAPを介して行われます。ここで、各user-dnには、smb-credentialsを保持するobjectclass:sambaSamAccountと、「通常の」認証用のobjectclass:shadowAccount/posixAccount(pam、Apacheなど)があります。
ここで、部門のuser-dbをダンプし、代わりにアップストリーム組織のuser-dbに対して認証を使用します。これらのユーザーアカウントはnovel-edirectoryで管理されており、これを使用してpamを使用して認証することができます(例:ssh-logins、別のホスト)。私たちのアップストリーム組織は、いくつかのディレクトリへのsmb/cifsベースのアクセス(いくつかのノベルサービスを介して)を提供しています。これは、Linuxクライアントからsmbclient
を介してアクセスできます。
私が現在何とかしていないのは、upstream-ldap(eDirectory)を使用して私たちの機関のsambaを認証することです。
アップストリームLDAPサーバーに対して認証するようにsambaサーバーを構成しました。
passdb backend = ldapsam:ldaps://ldap.example.com
しかし、ユーザーを認証しようとすると、次のようになります。
$ 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
私が抱えている2つの問題があります:
アップストリームLDAPの管理者パスワードを持っていません(おそらく、管理者パスワードを教えてくれません)。ユーザーを認証したいだけで、書き込みアクセスはまったく必要ありません。私はそれで去ることができますか?
アップストリームLDAPには、データベースにSamba関連の属性がありません。 smb/cifsは通常のposixAccountハッシュと互換性のない簡単なハッシュを使用するため、sambaが認証するには、これらの属性が必要であるという印象を受けました。
私の部門のSambaサーバーがそのようなLDAPサーバーに対して認証する方法はありますか?
SambaでLDAPパスワードを設定する必要があります。 (例:admindnがユーザーadmin用の場合)
smbpasswd -w admin