o que o erro ldapadd: "informações adicionais: objectClass: value # 3 invalid per syntax mean?

3

Eu tenho o ldif

dn: olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=default,ou=policies,dc=local
olcPPolicyHashCleartext: TRUE

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: top
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcMemberOf
olcOverlay: {1}memberof
olcMemberOfMemberAD: uniqueMember
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfRefInt: TRUE

que estou tentando usar para configurar o servidor ldap com o seguinte comando:

ldapadd -Y EXTERNAL -H, ldapi:/// -f /tmp/overlays.ldif
The error I'm getting is:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay=ppolicy,olcDatabase={1}hdb,cn=config"
ldap_add: Invalid syntax (21)
additional info: objectClass: value #3 invalid per syntax

Suspeito que seja devido a uma senha incorreta, mas não posso dizer com certeza. Os acessos que pesquisei na Web foram para "valor # 2" ou "valor # 1" - como especialista não relacionado a ldap, não sei se isso faz alguma diferença.

Obrigado Bruce

    
por Bruce Becker 13.05.2015 / 16:30

1 resposta

4

Não é uma senha incorreta, por exemplo, Invalid credentials (49) .

É Invalid syntax (21) . Especificamente, no caso de objectClass, você está tentando usar um objectClass que não existe ( olcPPolicyConfig ).

O OpenLDAP conta com valores de vários atributos, dos quais o objectClass é um, iniciando em 0. O que significa que o seu ldapadd se parece com:

value#0: top  
value#1: olcConfig  
value#2: olcOverlayConfig  
value#3: olcPPolicyConfig

O olcPPolicyConfig objectClass é fornecido pela biblioteca libtool ppolicy.la , que geralmente precisa ser carregada como um módulo. O mesmo vale para memberOf e a maioria das outras sobreposições.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// <<EOF
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: ppolicy.la

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: memberof.la
EOF

O caminho do módulo pode ser diferente, acima do caminho correto para o CentOS7.

    
por 14.05.2015 / 20:07

Tags