Erro “nenhuma regra de correspondência de igualdade” ao editar a sobreposição de Syncprov do LDAP

2

Eu tenho um servidor OpenLDAP OLC (2.4.23) ao qual estou tentando simplesmente adicionar dois atributos ao arquivo de sobreposição Syncprov, mas estou encontrando alguma dificuldade.

Aqui está o conteúdo do arquivo olcOverlay = {0} syncprov.ldif:

# cat /etc/openldap/slapd.d/cn\=config/olcDatabase \ = {1} bdb / olcOverlay \ = {0} syncprov.ldif

dn: olcOverlay={0}syncprov
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {0}syncprov
olcSpCheckpoint: 100 60
olcSpNoPresent: TRUE
olcSpReloadHint: TRUE
structuralObjectClass: olcSyncProvConfig
entryUUID: 727d29d6-cc5c-1032-89d0-2fc7acd5ca31
creatorsName: cn=config
createTimestamp: 20131018161654Z
entryCSN: 20131018161654.036436Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20131018161654Z

Estou tentando aplicar este LDIF:

# cat SyncprovOverlayAdd2.ldif

dn: olcOverlay={0}syncprov,olcDatabase={1}bdb,cn=config
changetype: modify
add: olcSpCheckpoint
olcSpCheckpoint: 100 30
-
add: olcSpSessionlog
olcSpSessionlog: 1000

O erro:

# ldapadd -v -f SyncprovOverlayAdd2.ldif -D "cn = config" -H "ldap: //ldap01.lab.com" -W -x

ldap_initialize( ldap://ldap01.lab.com:389/??base )
Enter LDAP Password: 
add olcSpCheckpoint:
    100 30
add olcSpSessionlog:
    1000
modifying entry "olcOverlay={0}syncprov,olcDatabase={1}bdb,cn=config"
ldap_modify: Inappropriate matching (18)
    additional info: modify/add: olcSpCheckpoint: no equality matching rule

Eu recebo o mesmo erro se invoco com ldapmodify. Estou usando as diretivas ou atributos de adição / modificação incorretos?

Outras tentativas de solução de problemas:

Eu tentei modificar o LDIF sem as diretivas "add:":

dn: olcOverlay={0}syncprov,olcDatabase={1}bdb,cn=config
changetype: add
olcSpCheckpoint: 100 30
olcSpSessionlog: 1000

Mas quando faço isso, recebo um erro diferente:

add olcSpCheckpoint:
    100 30
add olcSpSessionlog:
    1000
adding new entry "olcOverlay={0}syncprov,olcDatabase={1}bdb,cn=config"
ldap_add: Object class violation (65)
    additional info: no objectClass attribute

Eu não conheço bem as alterações ao vivo do OLC e quando você precisa adicionar / modificar / substituir, quando "changetype" precisa ser definido explicitamente, quando você precisa especificar um objectClass ao usar ldapadd / ldapmodify para uma entrada existente, etc.

Referência: Esta pergunta do ServerFault teve uma resposta que sugeria substituindo "add" por "replace" para este erro, mas isso não funcionou para mim.

    
por SeligkeitIstInGott 08.09.2014 / 23:58

2 respostas

1

Duas coisas precisam acontecer para corrigir isso. Eu já tinha uma entrada olcSpCheckpoint presente (mas não uma entrada olcSpSessionLog) no arquivo de configuração de sobreposição (olcOverlay = {0} syncprov.ldif), então eu precisava mudar meu "add:" para "replace:" para olcSpCheckpoint, assim :

# cat SyncprovOverlayAdd2.ldif

dn: olcOverlay={0}syncprov,olcDatabase={1}bdb,cn=config
changetype: modify
replace: olcSpCheckpoint
olcSpCheckpoint: 100 30
-
add: olcSpSessionlog
olcSpSessionlog: 1000

Assim, o link ServerFault que apontei com a minha anotação "Referência:" na parte inferior do OP estava correto, mas não consegui verificar no início, já que um segundo problema estava em jogo (e ainda recebi mensagens de erro após a correção do LDIF).

Então, em segundo lugar, mesmo depois de consertar o LDIF eu estava recebendo mensagens de erro que não podia alterar a entrada (eu perdi as mensagens exatas que apareciam no terminal infelizmente) ao tentar aplicar o LDIF com o ldapmodify, mas eu tive a O luxo de clonar a VM em que meu servidor LDAP estava, para que eu pudesse jogar com uma cópia fora da produção. E quando eu executei o mesmo comando ldapmodify no clone da VM, ele aplicou o LDIF com êxito. Então, minha única conclusão foi que o slapd foi confuso no servidor de produção por algum motivo estranho e precisou ser reiniciado. Eu tinha tentado evitar isso no meu servidor LDAP de produção de ponto único de falha (que além disso era para ser inteiramente OLC para evitar coisas como ter que reiniciar o slapd), mas eu mordi o marcador e reiniciei o slapd no servidor LDAP e depois disso, minhas alterações passaram sem problemas depois disso.

    
por 12.09.2014 / 17:52
1

Este é o link , que será corrigido na versão 2.4.47 do OpenLDAP.

    
por 26.09.2018 / 23:11

Tags