组更新后,OpenLDAP memberOf属性未更新


8

我在Debian 7.1(OpenLDAP 2.4.31)上安装了OpenLDAP,并且尝试设置memberof overlay。我的配置就像我在Internet上的很多站点上阅读的一样,但是,它仍然对我不起作用。

问题在于,仅在创建组时才更新实体的memberOf属性,而在修改或删除组时不更新实体的memberOf属性。实际上,这里曾经有人问过这个问题:如何在openldap服务器上配置反向组成员资格维护?(memberOf),但是即使将其检查为答案,我也无法在答案中找到任何可用的信息。(即使原始海报根据评论也无法对答案做任何事情...)

我的配置是这样的:cn = config / cn = module {0} .ldif

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof
structuralObjectClass: olcModuleList

对于模块:cn = config / olcDatabase = {1} hdb / olcOverlay = {0} memberof.ldif

dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
olcMemberOfRefInt: TRUE

我添加的组:

dn: cn=test,ou=services,dc=x,dc=y
cn: test
objectClass: groupOfNames
objectClass: top
description: test group
member: cn=Almafa Teszt,ou=users,dc=x,dc=y

我运行的查询:

$ ldapsearch -LLL -h localhost -x -D cn=admin,dc=x,dc=y -b u=users,dc=x,dc=y -W  '(memberOf=cn=test,ou=services,dc=x,dc=y)' memberOf

因此,问题不在于如何查询属性,而是在修改或删除组之后,搜索结果不会改变...

更新:至于布莱恩的答案,我还使用以下配置设置了refint覆盖:

$ ldapsearch -LLL -b cn=module{0},cn=config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
olcModuleLoad: {2}refint

$ ldapsearch -LLL -b olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner

但是它既不能固定叠加层的成员,也不能自身起作用。当我修改组成员的名称时,该组的member属性未更新。这两个问题可能相关吗?


你知道这个问题了吗?我也一样
Ethan Xu

@YangXu-不,我当时无法解决此问题,只是走了另一条路,不涉及memberOf插件。然后,几个月前,我不得不在另一台服务器上设置类似的东西,并且这在第一次工作。现在,我将新服务器的配置与此处放置的配置进行了比较,我唯一能看到的区别是在新服务器上,后端数据库为mdb,而在此旧情况下为hdb。您使用哪一个?如果是hdb,您可以尝试迁移到mdb吗?如果这样可以解决问题,您可以回答这个问题吗?谢谢!
彼得B

Answers:


0

听起来您可能需要配置refint覆盖,这有助于在您所描述的情况下维持目录的引用完整性。http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity上有一个页面,可能会对设置此覆盖图有帮助。


实际上,我之前已经尝试过refint覆盖,因为在某些地方它们被一起提到过。但这没有帮助。:(实际上,refint也不起作用,就好像我重命名用户一样,groupOfNames的“ member”属性也不会更新。也许这两个问题是相关的吗?
Peter B

只是为了确认一下,您是否使用成员条目的DN表示它是您的组的成员?
Brian Showalter 2013年

是的,喜欢member: cn=testuser,ou=users,dc=x,dc=y
彼得B

0

我们遇到了相同的问题(与您描述的症状相同)。原来我们olcRootDNdn: olcDatabase={1}hdb,cn=configSo So add(例如)中丢失了olcRootDN: cn=admin,cn=config

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.