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/

转载于:https://www.cnblogs.com/lfdblog/p/9805245.html

LDAP(轻量目录访问协议)是一种用于访问目录信息的协议,而Linux是一种开源的操作系统。用户组是Linux系统中管理用户权限的一种机制。在实现LDAP用户组同步到Linux系统中时,可以遵循以下步骤: 第一步是在Linux操作系统中安装LDAP客户端软件,该软件用于与LDAP服务器进行通信。可以通过包管理器或从官方网站下载并安装相应的软件。 第二步是在Linux系统中配置LDAP客户端。在配置文件中填写LDAP服务器的地址和端口号等必要信息,并设置正确的身份验证方式,以便能够与LDAP服务器进行连接和通信。 第三步是在LDAP服务器中创建相应的用户组。在LDAP管理工具中,可以创建与Linux系统中对应的用户组,并设置相应的组权限和成员。 第四步是在Linux系统中同步LDAP用户组。可以通过对用户组配置文件进行修改,将LDAP服务器中的用户组信息导入到Linux系统中。在配置文件中添加相应的LDAP用户组信息,并进行正确的配置和保存。 第五步是验证和测试同步效果。在Linux系统中,使用命令行工具或图形化界面工具验证LDAP用户组是否成功同步。可以检查Linux系统中的组信息是否与LDAP服务器中的相应组信息一致,并可调整需要同步的时间周期以保证组信息的实时同步。 综上所述,通过在Linux系统中安装LDAP客户端、配置LDAP客户端、在LDAP服务器中创建用户组、同步LDAP用户组到Linux系统,并验证同步效果,我们可以实现LDAP用户组到Linux的同步。这样可以方便统一管理用户组权限,在LDAP服务器中进行一次修改即可同步到所有连接的Linux系统上,提高了管理效率和系统安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值