我们有一个只读的OpenLDAP服务器,用于各种authentication服务。 我正在尝试将(独立) samba服务器添加到仅用作备份存储空间的列表中。 除了基本的用户名/密码authentication外,没有其他需要。
令人难以置信的教程和howtos长列表都假设一个新的configurationLDAP服务器完全访问。 虽然我拥有服务器的pipe理员凭据,并且已经包含所有用户和已填充的sambascheme,但LDAP服务器只是一个只读镜像。
目前我的configuration…
# LDAP Settings passdb backend = ldapsam:ldap://192.168.100.11 ldap suffix = dc=our-domain,dc=de ldap user suffix = ou=people ldap admin dn = cn=adminacc,ou=daemonadmins,dc=our-domain,dc=de ldap ssl = no ldap passwd sync = yes
…失败:
smbd version 4.2.14-Debian started. Copyright Andrew Tridgell and the Samba Team 1992-2014 [2017/01/13 12:52:49.367065, 0] ../source3/passdb/pdb_ldap_util.c:313(smbldap_search_domain_info) smbldap_search_domain_info: Adding domain info for SBACKUP failed with NT_STATUS_UNSUCCESSFUL [2017/01/13 12:52:49.367106, 0] ../source3/passdb/pdb_ldap.c:6534(pdb_ldapsam_init_common) pdb_init_ldapsam: WARNING: Could not get domain info, nor add one to the domain. We cannot work reliably without it. [2017/01/13 12:52:49.367116, 0] ../source3/passdb/pdb_interface.c:179(make_pdb_method_name) pdb backend ldapsam:ldap://192.168.100.11 did not correctly init (error was NT_STATUS_CANT_ACCESS_DOMAIN_INFO)
这当然不奇怪。 该服务器对于LDAP是未知的,因为它是只读的,所以不能创build新的条目。 我不明白为什么有必要首先添加关于机器的任何信息。 有没有某种方式smb需要configuration来处理对LDAP只读访问?
如果我明确地在我的smb.conf中设置了一个与LDAP服务器上现有条目匹配的netbios name ,那么一切正常。 但是,这有点像一个黑客,我宁愿不改变netbios name
这有点类似于这个 ,不幸的是只覆盖了使用只读服务器的可能性,而不是实现它。
samba需要在LDAP上读写,以便添加/修改机器,信任帐户和一些真正需要域名工作的本地用户(admin,nobody和域pipe理员等等)。
解决方法是:在samba PDC上安装一个OpenLDAP,从你的主LDAP复制一个分支(假设: ou=people ),只读; 使用glue叠加应用此分支下的分支ou=users (本地用户), ou=groups , ou=computers (不言自明)的读写树。
ldap machine suffix = ou=computers ldap suffix = dc=our-domain,dc=de # do not set the following; OpenLDAP is # able to sort out if a user is a replicated user in 'ou=people' # or a local user in 'ou=users' # ldap group suffix = ou=groups # ldap user suffix = ou=people