ldap 用戶組和用戶(4)


 

 

 

Posixgroup用戶組屬性

  默認情況下openldap的用戶組屬性是Posixgroup,Posixgroup用戶組屬性和用戶沒有實際的對應關系。如果我們一定要把Posixgroup和user對應起來的話,就需要單獨把用戶設置到Posixgroup中。

添加用戶組

[root@zabbix1 ~]# cat group.ldif 
dn: cn=yunweizu,ou=Group,dc=test,dc=com
objectClass: posixGroup
objectClass: top
cn: yunweizu
gidNumber: 10002
description: 運維組
[root@zabbix1 ~]# ldapadd -x -w "1234qwer" -D "cn=root,dc=test,dc=com" -f /root/group.ldif 
adding new entry "cn=yunweizu,ou=Group,dc=test,dc=com"

現在雖然添加了組但是還沒有關聯起來需要在組里加一個值

  以上設置基本可以滿足大部分業務場景的需要,但是如果我們需要根據用戶組來過濾用戶的話,Posixgroup用戶組屬性,是無法滿足需要的。比如:nginx與openldap集成過濾用戶組時、proftpd與openldap集成過濾用戶組時、openvpn與openldap集成過濾用戶組時、gitlab與openldap集成過濾用戶組時,Posixgroup用戶組屬性是無法滿足的。

  此時我們就需要使用groupOfUniqueNames用戶組屬性。

GroupOfUniqueNames用戶組屬性

   groupOfUniqueNames用戶組屬性,是可以根據用戶組過濾用戶,這個過濾是唯一的。

   要配置groupOfUniqueNames用戶組屬性,我們需要在openldap中添加相關的配置

[root@zabbix1 ~]# cat memberof_config.ldif 
dn: cn=module,cn=config
  : module
▽bjectClass: olcModuleList
olcModuleLoad: memberof
olcModulePath: /usr/lib64/openldap

dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

[root@zabbix1 ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f memberof_config.ldif
adding new entry "cn=module,cn=config"

adding new entry "olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config"

[root@zabbix1 ~]# vim refint1.ldif
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint                                                                                                                                                                      
"refint1.ldif" [New] 3L, 68C written                                                                                                                  
[root@zabbix1 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
modifying entry "cn=module{0},cn=config"

[root@zabbix1 ~]# vim refint2.ldif
dn: olcOverlay={1}refint,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner                                                                                                                                                            
"refint2.ldif" [New] 7L, 225C written                                                                                                                 
[root@zabbix1 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
ldapmodify: modify operation type is missing at line 2, entry "olcOverlay={1}refint,olcDatabase={2}hdb,cn=config"
[root@zabbix1 ~]# ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
adding new entry "olcOverlay={1}refint,olcDatabase={2}hdb,cn=config"

導入用戶組

[root@zabbix1 ~]# vim group1.ldif 
dn: cn=yunweizu,ou=Group,dc=test,dc=com
objectClass: groupOfUniqueNames
objectClass: top
cn: yunweizu
description: 運維組
uniqueMember: uid=test,ou=People,dc=test,dc=com                                                                                                                                                              
~                                                                                                                                                                       
"group1.ldif" 6L, 173C written                                                                                                                        
[root@zabbix1 ~]# ldapadd -x -w "1234qwer" -D "cn=root,dc=test,dc=com" -f /root/group1.ldif 
adding new entry "cn=yunweizu,ou=Group,dc=test,dc=com"

通過上圖,我們可以很明顯的看出groupOfUniqueNames用戶組屬性的成員屬性為uniqueMember

如果此時把用戶加入到該用戶組后,我們是可以在用戶組中直接看到該用戶的。

也就說使用groupOfUniqueNames用戶組屬性的組,用戶組與用戶可以直接進行關聯。

[root@zabbix1 ~]# ldapsearch -x -LLL -H ldap://127.0.0.1 -x -D cn=root,dc=test,dc=com -w "1234qwer"  -b uid=test,ou=People,dc=test,dc=com dn uniqueMember
dn: uid=test,ou=People,dc=test,dc=com

通過上圖,我們可以很明顯的看出groupOfUniqueNames用戶組屬性已經配置完畢。

這樣第三方在調用openldap進行組過濾,就可以直接使用了。

 

 

參考網站

  https://www.ilanni.com/?p=14127

  https://www.ilanni.com/?p=13775

  https://www.cnblogs.com/lemon-le/p/6266921.html

  https://www.openldap.org/doc/admin24/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM