Включить оверлей memberof - модуль пуст

Я пытаюсь включить оверлей memberof для моего ldap, используя эту статью. Единственная разница в том, что я использую собственную схему, я использую objectClass из этой схемы. Так что мой ldif выглядит так

dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcModulePath: /usr/lib/ldap

dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof

olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: customGroup
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

Когда я добавляю ldif-файлы этими командами (2-я и 3-я из статьи)

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f /tmp/refint1.ldif
sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f /tmp/refint2.ldif

все создано внутри моего конфига. Но оверлейный элемент member всегда создается пустым. Нет значений для полей, начинающихся с olcMemberOf..., Когда я заполняю эти поля вручную с помощью браузера ldap, все работает нормально. Но мне нужно, чтобы они были заполнены моим файлом ldif.

Что я делаю отжимать? Есть идеи?

1 ответ

Решение

Формат LDIF указывает, что каждая запись отделена пустой строкой. https://en.wikipedia.org/wiki/LDAP_Data_Interchange_Format

Тот факт, что у вас есть пустая строка между olcOverlay: memberof а также olcMemberOfDangling: ignore означает, что dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config конец строкой olcOverlay: memberof

Попробуйте подавить эту строку и повторно импортировать ее.

Другие вопросы по тегам