我为openldap添加memberof属性的时候参考了这个文章:http://www.adimian.com/blog/2014/10/how-to-enable-memberof-using-openldap/

但是文章上用的ldap的版本有些旧了,有些属性的名字在新的版本的ldap里边已经变更了,所以记录一下。

变更有以下两点:
用户组的objectClass从 groupOfNames 变成了 groupOfUniqueNames

组里边的用户的属性的名称从member变成了uniqueMember

配置的方法:

编辑 memberof_config.ldif 内容如下:

dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof
olcModulePath: /usr/lib/ldap

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf

编辑 refint1.ldif 内容如下:

dn: cn=module{1},cn=config
add: olcmoduleload
olcmoduleload: refint

编辑 refint2.ldif 内容如下:

dn: olcOverlay=refint,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof uniqueMember manager owner

然后执行命令进行添加:

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif

完成之后,参照链接里的文章,新建一个组,往组里新建一个用户,然后执行测试:

ldapsearch -x -LLL -H ldap:/// -b uid=test,ou=users,dc=abc,dc=chinamobile,dc=com dn memberof

如果出现了memberof属性,则说明添加成功

posted on 2017-05-13 16:37  梦中彩虹  阅读(11482)  评论(0)    收藏  举报