我為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屬性,則說明添加成功