我在Debian 7.1上有一个OpenLDAP设置,(OpenLDAP 2.4.31),我正在尝试设置overlayof成员.我的配置就像我在整个互联网上的许多网站上阅读过,但它仍然不适合我.
问题是实体的memberOf属性仅在我创建组时更新,但在修改或删除组时不会更新.实际上这个问题曾经在此之前被问过:How do I configure Reverse Group Membership Maintenance on an openldap server? (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=y
我运行的查询:
$ldapsearch -LLL -h localhost -x -D cn=admin,dc=y -b u=users,dc=y -W '(memberOf=cn=test,dc=y)' memberOf
所以问题不在于如何查询属性,而是在修改或删除组后,搜索结果不会改变…
更新:至于Brian的回答,我还设置了refint overlay,使用以下配置:
$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,cn=config objectClass: olcConfig objectClass: olcOverlayConfig objectClass: olcRefintConfig objectClass: top olcOverlay: {1}refint olcRefintAttribute: memberof member manager owner
听起来您可能需要配置refint overlay,这有助于在您描述的情况下维护目录的引用完整性.在
http://www.zarafa.com/wiki/index.php/OpenLDAP_referential_integrity有一个页面可能有助于设置此叠加层.