Включить оверлей 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
Попробуйте подавить эту строку и повторно импортировать ее.