Я пытаюсь включить наложение 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
все создано внутри моего конфига. Но оверлей memberof всегда создается пустым. Нет значений для полей, начинающихся с olcMemberOf...
. Когда я заполняю эти поля вручную в браузере ldap, все работает нормально. Но мне нужно, чтобы они были заполнены моим ldif файлом.
Что я отжимаю? Любые идеи?
Формат LDIF указывает, что каждая запись отделяется пустой строкой. https://en.wikipedia.org/wiki/LDAP_Data_Interchange_Format#Content_Record_Format
Тот факт, что у вас есть пустая строка между olcOverlay: memberof
и olcMemberOfDangling: ignore
означает, что dn: olcOverlay={0}memberof,olcDatabase={1}hdb,cn=config
заканчиваться линией olcOverlay: memberof
Попробуйте подавить эту строку и повторно импортировать ее.