1膘茎、在Openldap服務器端上加載memberof模塊
[root@node3 ~]# vim add_module_group.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModulePath: /usr/lib64/openldap
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: memberof.la
[root@node3 ~]# vim add_group_objectClass.ldif
dn: olcOverlay=memberof,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfUniqueNames #由centos 6 的groupOfNames 變更為了centos 7的groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember #centos 6用戶的屬性的名稱從member變成了uniqueMember
olcMemberOfMemberOfAD: memberOf
[root@node3 ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add_module_group.ldif
[root@node3 ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add_group_objectClass.ldif
2至壤、添加主機架構及添加相應的主機組
[root@node3 ~]# vim add_unique_group.ldif
dn: ou=host,dc=ldaptest,dc=com,dc=cn
ou: host
objectClass: organizationalUnit
objectClass: top
dn: cn=db,ou=host,dc=ldaptest,dc=com,dc=cn
objectClass: top
objectClass: groupOfUniqueNames
cn: db
uniqueMember: uid=devin,ou=people,dc=ldaptest,dc=com,dc=cn
dn: cn=tomcat,ou=host,dc=ldaptest,dc=com,dc=cn
objectClass: top
objectClass: groupOfUniqueNames
cn: tomcat
uniqueMember: uid=charles,ou=people,dc=ldaptest,dc=com,dc=cn
uniqueMember: uid=tyler,ou=people,dc=ldaptest,dc=com,dc=cn
[root@node3 ~]# ldapadd -x -D cn=admin,dc=ldaptest,dc=com,dc=cn -W -f add_unique_group.ldif
配置完成后再Openldap服務端執(zhí)行下述語句應能正常查詢到相應的memberOf屬性。
[root@node3 ~]# ldapsearch -x -LLL -H ldap:/// -D cn=admin,dc=ldaptest,dc=com,dc=cn -W -b uid=charles,ou=people,dc=ldaptest,dc=com,dc=cn memberOf
Enter LDAP Password:
dn: uid=charles,ou=people,dc=ldaptest,dc=com,dc=cn
memberOf: cn=tomcat,ou=host,dc=ldaptest,dc=com,dc=cn
3颊亮、配置Centos 7 ldap客戶端僅允許指定的主機組用戶登錄訪問
#在/etc/nslcd.conf文件末尾添加下述過濾條件撮珠,表示匹配主機組db下的用戶
[root@localhost ~]# vim /etc/nslcd.conf
filter passwd (memberOf=cn=db,ou=host,dc=ldaptest,dc=com,dc=cn)
[root@localhost ~]# systemctl restart nslcd
重啟完nslcd服務后攀操,此時該客戶端僅能允許獲取到主機組db 下的用戶信息,因此僅允許該部分用戶登錄到該系統(tǒng)毙玻。