Carregue o LDIF começando com “cn = Subschema”

1

Eu tenho que criar um servidor de desenvolvimento para espelhar uma instalação LDAP do cliente. O cliente me deu um arquivo db.ldif começando com

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

Mas não consigo encontrar como carregá-lo:

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..

Minha instalação:

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

Eu tento mudar o EOL para o Linux, e outras coisas de estrutura de arquivos. Como posso fazer meu trabalho?

    
por Cédric Girard 11.08.2016 / 18:40

1 resposta

2

Isso parece que o arquivo LDIF (pelo menos em parte) contém um despejo do DSE raiz de um servidor LDAP, obtido usando uma base de "cn=Subschema" com algo como:

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

Então, para responder à sua pergunta, você não pode ldapadd , porque cn=Subschema já existe, como indica o erro. É um desses objetos especiais mantidos pelo próprio servidor; você provavelmente não quer ou precisa de um despejo disso.

Você realmente quer apenas um despejo de alguns / todos do banco de dados cn=config ; no mínimo, os esquemas em uso e, em seguida, um despejo do próprio banco de dados principal. Ter um despejo mais abrangente do banco de dados cn=config não pode prejudicar, já que isso terá coisas como definições de ACL, sobreposições, etc. que podem ser importantes.

    
por 11.08.2016 / 19:05

Tags