我为openldap添加memberof属性的时候参考了这个文章:http://www.adimian.com/blog/2014/10/how-to-enable-memberof-using-openldap/api
可是文章上用的ldap的版本有些旧了,有些属性的名字在新的版本的ldap里边已经变动了,因此记录一下。测试
变动有如下两点:
用户组的objectClass从 groupOfNames 变成了 groupOfUniqueNamesui
组里边的用户的属性的名称从member变成了uniqueMembercode
配置的方法:blog
编辑 memberof_config.ldif 内容以下:get
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 内容以下:class
dn: cn=module{1},cn=config add: olcmoduleload olcmoduleload: refint
编辑 refint2.ldif 内容以下:test
dn: olcOverlay=refint,olcDatabase={1}hdb,cn=config objectClass: olcConfig objectClass: olcOverlayConfig objectClass: olcRefintConfig objectClass: top olcOverlay: refint olcRefintAttribute: memberof uniqueMember manager owner
而后执行命令进行添加:module
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
完成以后,参照连接里的文章,新建一个组,往组里新建一个用户,而后执行测试:mobile
ldapsearch -x -LLL -H ldap:/// -b uid=test,ou=users,dc=abc,dc=chinamobile,dc=com dn memberof
若是出现了memberof属性,则说明添加成功