加载以“cn=Subschema”开头的 LDIF

加载以“cn=Subschema”开头的 LDIF

我必须创建一个开发服务器来镜像客户的 LDAP 安装。客户给了我一个以以下内容开头的 db.ldif 文件

cn: cn=Subschema
ldapSyntaxes: ( 1.3.6.1.1.16.1 DESC 'UUID' )
ldapSyntaxes: ( 1.3.6.1.1.1.0.1 DESC 'RFC2307 Boot Parameter' )
ldapSyntaxes: ( 1.3.6.1.1.1.0.0 DESC 'RFC2307 NIS Netgroup Triple' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.52 DESC 'Telex Number' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.50 DESC 'Telephone Number' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.49 DESC 'Supported Algorithm' X-BINAR
 Y-TRANSFER-REQUIRED 'TRUE' X-NOT-HUMAN-READABLE 'TRUE' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.45 DESC 'SubtreeSpecification' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.11 DESC 'Country String' )
ldapSyntaxes: ( 1.3.6.1.4.1.1466.115.121.1.44 DESC 'Printable String' )
and so on

但我不知道如何加载它:

ldapadd -Y EXTERNAL -H ldapi:// -f /ldap/db.ldif 
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=Subschema"
ldap_add: Already exists (68)
        additional info: subschema subentry already exists

slapadd -l /ldap/db.ldif 
57aca988 str2entry: attributeType ldapSyntaxes #0: no validator for syntax 1.3.6.1.4.1.1466.115.121.1.54
slapadd: could not parse entry (line=1)
_#################### 100.00% eta   none elapsed            none fast!         
Closing DB..

我的安装:

slapd -V       
@(#) $OpenLDAP: slapd  (Ubuntu) (Jun 24 2016 15:39:52) $
        buildd@lgw01-24:/build/openldap-MhQj18/openldap-2.4.31/debian/build/servers/slapd

我尝试将 EOL 更改为 Linux 版本,以及其他文件结构内容。我该如何完成我的工作?

答案1

这看起来像是 LDIF 文件(至少部分)包含来自 LDAP 服务器的根 DSE 的转储,是通过使用"cn=Subschema"类似以下内容的基础获得的:

ldapsearch -Y EXTERNAL -H ldapi:/// -s base -b 'cn=Subschema' +

因此,要回答您的问题,您不能ldapadd这样做,因为cn=Subschema错误表明它已经存在。它是服务器本身维护的特殊对象之一;您可能不想要或不需要转储它。

您实际上只需要转储部分/全部cn=config数据库;至少是正在使用的架构,然后转储主数据库本身。拥有更全面的数据库转储cn=config不会有什么坏处,因为其中会包含 ACL 定义、覆盖等可能很重要的内容。

相关内容