Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Общий раздел => Тема начата: marawu от 24 Январь 2018, 09:20:58
-
Добрый день, прошу помощи.
Сегодня выяснил такой момент, что на сервере перестало работать наложение memberof, то есть раньше всё работало и в какой-то момент перестало, в какой точно сказать не могу:( Добавляю или удаляю пользователя из группы, набор атрибутов memberOf у него не меняется.
А вот на реплике всё работает как надо не смотря на то, что конфигурация у них одинаковая.
В итоге на серверах сейчас разный набор атрибутов memberOf у пользователей и я пока не знаю как это исправить и как потом вернуть к нормальному состоянию. В логах ошибок никаких я не вижу.
С каждым разом расснихрон всё больше и больше:(
На всякий случай кину конфиг оверлеев:
dn: olcDatabase={1}mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: {1}mdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=domain,dc=ru
olcLastMod: TRUE
olcRootDN: cn=admin,dc=domain,dc=ru
olcRootPW: {SSHA}zjDsG4wlohNoFErCtD22l6jqrV5GwDiI
olcDbCheckpoint: 512 30
olcDbIndex: objectClass eq
olcDbIndex: uidNumber,gidNumber eq
olcDbIndex: member,memberUid eq
olcDbIndex: uniqueMember eq,pres
olcDbIndex: mail,mailAlternateAddress sub,eq,pres
olcDbIndex: cn,uid sub,eq,pres
olcDbIndex: entryCSN eq
olcDbIndex: entryUUID eq
olcDbMaxSize: 1073741824
olcAccess: {0}to attrs=userPassword
by ssf=128 self write
by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
by ssf=128 dn="uid=wiki,ou=Users,dc=domain,dc=ru" read
by ssf=128 dn="cn=ldap04,dc=domain,dc=ru" read
by ssf=128 anonymous auth
by ssf=128 * none
olcAccess: {1}to attrs=shadowLastChange
by ssf=128 self write
by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
by ssf=128 * read
olcAccess: {2}to *
by ssf=128 dn="uid=office,ou=Users,dc=domain,dc=ru" write
by ssf=128 * read
olcLimits: {0}dn.exact="cn=ldap04,dc=domain,dc=ru" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited
dn: olcOverlay={0}memberof,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: {0}memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf
dn: olcOverlay={1}refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner
dn: olcOverlay={2}autogroup,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAutomaticGroups
olcOverlay: {2}autogroup
olcAGattrSet: {0}groupOfURLs memberURL member
dn: olcOverlay={3}dynlist,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcDynamicList
olcOverlay: {3}dynlist
olcDlAttrSet: {0}groupOfUniqueNames labeledURI member
dn: olcOverlay={4}unique,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcUniqueConfig
olcOverlay: {4}unique
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?uid?sub
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?mail?sub
olcUniqueURI: ldap:///ou=People,dc=domain,dc=ru?uidNumber?sub
olcUniqueURI: ldap:///ou=Users,dc=domain,dc=ru?uid?sub
olcUniqueURI: ldap:///ou=Users,dc=domain,dc=ru?uidNumber?sub
dn: olcOverlay={5}syncprov,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: {5}syncprov
olcSpCheckpoint: 500 15
dn: olcOverlay={6}accesslog,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcAccessLogConfig
olcOverlay: {6}accesslog
olcAccessLogDB: cn=accesslog
olcAccessLogOps: writes
olcAccessLogPurge: 7+00:00 1+00:00
olcAccessLogSuccess: TRUE
Грешил на dn: olcOverlay={3}dynlist,olcDatabase={1}mdb,cn=config, удалил olcDlAttrSet, но это не помогло, да и на реплике это не мешает.
Очень прошу помощи
-
Удалил учетную запись пользователя, добавил по новой. Добавил в несколько групп, на мастере memberof не появилось, а на реплике рабоает нормально
-
В общем после перезапуска сервиса наложение заработало, но вот рассинхрон придется устранить вручную, благо групп не много, около 500, напишу скрипт, который всех передобавит.
ЗЫ. Так же после перезапуска стало повлятся сообщение о ограничении вывода, хотя olcSizeLimit был -1. Передобавил ещё раз, вроде работает.
Видимо я вносил какие-то изменения и нужно было после этого перезапустить сервис, хотя я всегда считал что cn=config работает без перезапука, в следствии чего произошла такая ситуация
-
Здравствуйте, Никита!
Такой большой стек наложений, membeof будет в нём обрабатываться последним, так что на каком-то этапе может быть затык. autogroup что-то мутит с атрибутом memberof само по себе, я толком не понял, что именно. dynlist настроено на слежение за тем же классом, что и memberof, тут тоже может что-то происходить. Кстати, в dynlist результирующим атрибутом стоит member (а не uniqueMember) -- возможно, это так и надо, но тогда откуда возьмутся memberof =) . В общем, настройки сложные, без olcLogLevel: -1 и тщательного анализа трудно разобраться.
Я не уверен, что работает наложение refint, по идее каждый отслеживаемый атрибут добавляется отдельным значением атрибута olcRefintAttribute. И непонятно, зачем отслеживать атрибут memberof, если он и так отслеживается наложением memberof. Тут тоже может крыться причина затыка.
Егор
-
Кстати, в dynlist результирующим атрибутом стоит member (а не uniqueMember) -- возможно, это так и надо, но тогда откуда возьмутся memberof =)
Я вообще хочу его переделать на groupOfNames чтобы не было конфликтов, там как раз member для членства используется.
В общем, настройки сложные, без olcLogLevel: -1 и тщательного анализа трудно разобраться.
Надеюсь такого больше не повторится, но в следующий раз включу полный дебаг
Я не уверен, что работает наложение refint, по идее каждый отслеживаемый атрибут добавляется отдельным значением атрибута olcRefintAttribute. И непонятно, зачем отслеживать атрибут memberof, если он и так отслеживается наложением memberof. Тут тоже может крыться причина затыка.
Я так понял refint должен обновить членство в группах если я например сделаю modrdn (смена фамилии к примеру). Я memberOf делал по примерам, ибо своего опыта пока маловато :( , а подробную документацию найти ой как не просто.
Насколько я понимаю оверлеи удалять нельзя?
-
Я так понял refint должен обновить членство в группах если я например сделаю modrdn (смена фамилии к примеру).
Да, для этого. А ещё он может удалять соответствующих членов группы, если удаляется запись пользователя. Я постарался осветить эту тему здесь (https://pro-ldap.ru/books/diving/groups/static1.html).
Я memberOf делал по примерам, ибо своего опыта пока маловато :( , а подробную документацию найти ой как не просто.
Материал по memberof тоже есть в планах (как и многое другое =) ). Постараюсь сделать в этом году.
Насколько я понимаю оверлеи удалять нельзя?
Когда-то было нельзя, как обстоят дела сейчас -- не знаю. Мне ещё не было нужды удалять наложения =) .
Егор