что делает ldapadd ошибку: "дополнительная информация: objectClass: значение № 3, недопустимый на средний синтаксис?

У меня есть 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

который я пытаюсь использовать для конфигурирования ldap сервера со следующей командой:

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

Я подозреваю, что это происходит из-за неправильного пароля, но я не могу сказать наверняка. Хиты у меня был поиск в сети, были для "значения № 2", или "оценивают № 1" - как не ldap эксперт, я не знаю, имеет ли это какое-либо значение.

Спасибо, Bruce

3
задан 13 May 2015 в 17:30
1 ответ

Это неплохой пароль, т.е. Недействительные учетные данные (49).

Это Недействительный синтаксис (21). В частности, в случае objectClass, вы пытаетесь использовать объектClass, которого не существует (olcPPolicyConfig).

OpenLDAP подсчитывает значения нескольких атрибутов, из которых объектClass равен единице, начиная с 0. Что означает, что ваш ldapadd выглядит как:

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

ObjectClass olcPPolicyConfig предоставляется библиотекой libtool ppolicy.la, которая в общем случае должна быть загружена как модуль. То же самое касается memberOf и большинства других оверлеев.

$ 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

Путь к вашему модулю может отличаться, выше правильный путь для CentOS7.

.
4
ответ дан 3 December 2019 в 06:05

Теги

Похожие вопросы