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:
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={}memberof,olcDatabase={}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{},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={}refint,olcDatabase={}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {}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 , 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/

ldap 用户组和用户(4)的更多相关文章

  1. centos 创建用户组及用户

    用户及用户组存放文件 1./etc/passwd 其中每一行记录对应着一个用户,每行记录又被冒号(:)分隔为7个字段,其格式和具体含义如下: [cpp] view plaincopyprint?在CO ...

  2. centos7安装Jenkins更改默认端口并配置Ldap服务器进行用户认证

    应用环境:Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作.   Jenkins官网:https://jenkins.io/ 测试环境:一台Centos ...

  3. Confluence 6 LDAP 用户组结构设置

    用户组对象类(Group Object Class) 这是在 LDAP 用户组对象中使用的类的名字.例如: groupOfUniqueNames group 用户组对象过滤器(Group Object ...

  4. 新建用户组、用户、用户密码、删除用户组、用户(适合CentOS、Ubuntu系统)

    这个知识点,模糊了好久.!!! 生产中,习惯如下: useradd,默认会将自身新建用户,添加到同名的用户组中.如,useradd zhouls,执行此命令后,默认就添加到同名的zhouls用户组中. ...

  5. linux中用户组和用户

    linux中用户组和用户 1.介绍 在我们的linux系统,有很多用户组,也可以手动创建用户组,不同的用户组下面有很多的用户. 2.创建用户组及有关的命令 groupadd phpzu:创建一个php ...

  6. zabbix4.2学习笔记--新建用户组和用户

    新建用户组 zabbix中管理机器是以用户组划分,这里新建一个只读用户群组和只读用户 新建用户组 点击 管理-用户组-创建用户群组,如下图 点击创建之后,有三列设置,分别是用户群组.权限和标签过滤器, ...

  7. jira默认是jira_user用户组的用户有登录jira的权限

    场景描述: 今天给jira新建了几个用户组,看着英文的jira_user和jira_developer有点多余,所以就给删掉了.然后后面新建了开发人员和测试人员用户组,进行了人员分配和项目分配,可是突 ...

  8. Spring Boot教程(四十二)LDAP来管理用户信息(2)

    使用spring-data-ldap的基础用法,定义LDAP中属性与我们Java中定义实体的关系映射以及对应的Repository @Data @Entry(base = "ou=peopl ...

  9. linux创建www用户组和用户

    linux创建www用户组和用户 wdcp中的nginx服务启动需要依赖www用户,因此若没有此用户就可能会启动失败.创建这个用户的方法: [root@bogon local]# id www [ro ...

随机推荐

  1. codeforces 391E2 (【Codeforces Rockethon 2014】E2)

    题目:http://codeforces.com/problemset/problem/391/E2    题意:有三棵树.每棵树有ni个结点,加入两条边把这三棵树连接起来,合并成一棵树.使得合并的树 ...

  2. 详略。。设计模式1——单例。。。。studying

    设计模式1--单例 解决:保证了一个类在内存中仅仅能有一个对象. 怎么做才干保证这个对象是唯一的呢? 思路: 1.假设其它程序可以任意用new创建该类对象,那么就无法控制个数.因此,不让其它程序用ne ...

  3. 二分查找(c & c++)

    typedef int ElemType; C版本号 [递归版本号] int binSearch2(ElemType List[] ,int x,int head,int tail){ //递归版本号 ...

  4. luogu1514 引水入城

    题目大意 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个NN 行\times M×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市 ...

  5. inux内核模块编程入门

    linux内核模块编程入门 2013-07-06 23:59:54 分类: LINUX 原文地址:linux内核模块编程入门 作者:s270768095 模块编程属于内核编程,因此,除了对内核相关知识 ...

  6. Truck History(prim)

    http://poj.org/problem?id=1789 读不懂题再简单也不会做,英语是硬伤到哪都是真理,sad++. 此题就是一个最小生成树,两点之间的权值是毎两串之间的不同字母数. #incl ...

  7. 利用python+tkinter开发一个点名软件

    最近上课学生多名字记不住,名册忘记了带,要点名怎么办,好久没有写代码了,于是自己写了个点名软件,记录下吧,第一次接触TK也不是太熟悉,写的不太好,记录下源代码 以后遇到要写桌面软件还是可以耍耍的. t ...

  8. java的random生成某个范围内的随机数

    import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public stat ...

  9. RabbitMQ 官方NET教程(二)【工作队列】

    这篇中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务. 工作队列的主要任务是:避免立刻执行资源密集型任务和避免必须等待其完成.相反地,我们进行任务调度:我们把任务封装为消息发送 ...

  10. 06-联系人管理(xib应用)

    ViewController.h文件中: @interface ViewController : UIViewController - (IBAction)add:(UIBarButtonItem * ...