Obtendo "ldap_add: O servidor não está disposto a executar (53) informações adicionais: nenhum conhecimento superior global" ao tentar adicionar uma nova objectClass ao openLDAP

Obtendo "ldap_add: O servidor não está disposto a executar (53) informações adicionais: nenhum conhecimento superior global" ao tentar adicionar uma nova objectClass ao openLDAP

Eu criei um novo esquema parecido com este

attributetype ( 2.25.3236588
        NAME 'x-candidateNumber'
        DESC 'Candidate number'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )


attributetype ( 2.25.3536282
        NAME 'x-candidateFullName'
        DESC 'Candidate name'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.6587875
        NAME 'x-candidateTitleBeforeName'
        DESC 'Candidate title before name'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.6164147
        NAME 'x-candidateTitleAfterName'
        DESC 'Candidate title after name'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.1702122
        NAME 'x-candidateBirthNumber'
        DESC 'Candidate title after name'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.3134432
        NAME 'x-candidateListedAt'
        DESC 'Candidate listed at'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.3682754
        NAME 'x-candidateErasedAt'
        DESC 'Candidate erased at'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.5497561
        NAME 'x-candidateNote'
        DESC 'Candidate note'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 2.25.9736218
        NAME 'x-candidateStatus'
        DESC 'Candidate status'
        EQUALITY caseIgnoreMatch
        SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

objectclass ( 2.25.1798306
        NAME 'ekcrCandidate'
        DESC 'RFC1274: simple security object'
        SUP ( top $ person $ organizationalPerson $ inetOrgPerson )
        STRUCTURAL
        MUST (cn $ ou)
        MAY ( x-candidateNumber $ x-candidateFullName $ x-candidateTitleBeforeName $
                x-candidateBirthNumber $ x-candidateTitleAfterName $ x-candidateListedAt $
                x-candidateErasedAt $ x-candidateNote $ x-candidateStatus
         ))

adicionou este esquema ao arquivo schema_convert.conf

include /etc/ldap/schema/core.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/dyngroup.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/pmi.schema
include /etc/ldap/schema/ekcrconcipient.schema
include /etc/ldap/schema/ekcrcandidate.schema
include /etc/ldap/schema/ekcrlegalofficer.schema

em seguida, converti o esquema em arquivo ldif

slaptest -f schema_convert.conf -F /tmp/ldif_output

gerou arquivo que modifiquei conforme explicadoaquina etapa 4. O arquivo cn={14}ekcrlegalofficer.ldif resultante agora se parece com isto

dn: cn=ekcrlegalofficer
objectClass: olcSchemaConfig
cn: ekcrlegalofficer
olcAttributeTypes: {0}( 2.25.7702021 NAME 'x-legalOfficerNumber' DESC 'Legal o
 fficer number' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
 32768} )
olcAttributeTypes: {1}( 2.25.960171 NAME 'x-legalOfficerFullName' DESC 'Legal
 officer name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{3
 2768} )
olcAttributeTypes: {2}( 2.25.196694 NAME 'x-legalOfficerTitleBeforeName' DESC
 'Legal officer title before name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1
 .1466.115.121.1.15{32768} )
olcAttributeTypes: {3}( 2.25.7643140 NAME 'x-legalOfficerTitleAfterName' DESC
 'Legal officer title after name' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.
 1466.115.121.1.15{32768} )
olcAttributeTypes: {4}( 2.25.1064416 NAME 'x-legalOfficerListedAt' DESC 'Legal
  officer listed at' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
 1.15{32768} )
olcAttributeTypes: {5}( 2.25.1005975 NAME 'x-legalOfficerErasedAt' DESC 'Legal
  Officer erased at' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.
 1.15{32768} )
olcAttributeTypes: {6}( 2.25.5513419 NAME 'x-legalOfficerNote' DESC 'Legal Off
 icer note' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{3276
 8} )
olcAttributeTypes: {7}( 2.25.4535859 NAME 'x-legalOfficerStatus' DESC 'Legal O
 fficer status' EQUALITY caseIgnoreMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{
 32768} )
olcObjectClasses: {0}( 2.25.6182638 NAME 'ekcrLegalOfficer' DESC 'RFC1274: sim
 ple security object' SUP ( top $ person $ organizationalPerson $ inetOrgPerso
 n ) STRUCTURAL MUST ( cn $ ou ) MAY ( x-legalOfficerNumber $ x-legalOfficerFu
 llName $ x-legalOfficerTitleBeforeName $ x-legalOfficerTitleAfterName $ x-leg
 alOfficerListedAt $ x-legalOfficerErasedAt $ x-legalOfficerNote $ x-legalOffi
 cerStatus ) )

então tentei adicionar este novo objectClass com

ldapadd -D "cn=admin,cn=config" -W -f cn={14}ekcrlegalofficer.ldif

o que resultou nisso

ldap_add: Server is unwilling to perform (53)
        additional info: no global superior knowledge

Eu entendi, esse erro pode ocorrer quando você está tentando adicionar um novo registro no banco de dados errado, mas como estou tentando criar uma nova classe de objeto, esse não deveria ser o meu caso.

Na verdade, funcionou para mim no passado, mas depois reconfigurei meu servidor openLDAP usando

dpkg-reconfigre slapd

e desde então estou enfrentando esse problema.

Estou preso nisso no terceiro dia agora e estou muito desesperado, ficaria muito grato por qualquer ajuda.

Responder1

Acho que o problema é que o dn da sua nova objectclass é simplesmente:

cn=ekcrlegalofficer

Portanto, não está sob nenhum sufixo no seu diretório. Deveria ser algo como:

cn=ekcrlegalofficer,cn=schema,cn=config

Eu acredito.

informação relacionada