如何在OpenLDAP启用MemberOf


默认情况下OpenLDAP的用户组属性是Posixgroup,Posixgroup用户组和用户没有实际的对应关系。如果需要把Posixgroup和user关联起来则需要将用户添加到对应的组中。 通过如上配置可以满足大部分业务场景,但是如果需要通过用户组来查找用户的话,Posixgroup用户组属性,是无法满足要求的。此时需要使用OpenLDAP的groupOfUniqueNames用户组属性。

  • 环境
    • OpenLDAP版本:2.4.44
    • 系统:CentOS:7.7

OpenLDAP启用MemberOf

  1. 准备memberof_conf.ldif文件
cat >  memberof_conf.ldif<<EOF 
dn: cn=module{0},cn=config
cn: modulle{0}
objectClass: olcModuleList
objectclass: top
olcModuleload: memberof.la
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: groupOfUniqueNames
olcMemberOfMemberAD: uniqueMember
olcMemberOfMemberOfAD: memberOf
EOF
  1. 编辑refint1.ldif文件
cat  > refint1.ldif <<EOF
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint
EOF
  1. 编辑refint2.ldif文件
cat  > refint2.ldif << EOF
dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof uniqueMember  manager owner
EOF
  1. 上述创建的3个文件导入到OpenLDAP中
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f  memberof_conf.ldif 
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f  refint1.ldif 
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f  refint2.ldif 
  1. 查看当前dn下包含cn=config配置列表会显示出已生效的memberof和refint配置。
ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config dn   |  grep olcOverlay 

dn: olcOverlay={0}memberof,olcDatabase={2}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={2}hdb,cn=config

以上步骤就完成了OpenLDAP的MemberOf模块启用

创建用户测试

  1. 编写创建ou=People与ou=Group的ldif配置文件
cat  > organizationalUnit.ldif << EOF
dn: ou=host,dc=neoclub,dc=cn
ou: People
objectClass: organizationalUnit
objectClass: top

dn: ou=Group,dc=neoclub,dc=cn
ou: People
objectClass: organizationalUnit
objectClass: top
EOF
  1. 编写创建用户的ldif文件
cat > test_user.ldif >> EOF
dn: uid=test,ou=People,dc=neoclub,dc=cn
uid: test
cn: test
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: 123456
shadowLastChange: 17694
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/users/test
EOF
  1. 编写创建一个新的groupOfUniqueNames用户组,并把test用户添加到该组的ldif 配置文件
cat  >  test_group.ldif<<EOF
dn: cn=test_admin,ou=Group,dc=neoclub,dc=cn
objectClass: groupOfUniqueNames
cn: test_admin
uniqueMember: uid=test,ou=People,dc=neoclub,dc=cn
EOF
  1. 上述创建的3个文件导入到OpenLDAP中,创建指定的ou、group、user信息
ldapadd -D "cn=admin,dc=neoclub,dc=cn" -W -x -f  organizationalUnit.ldif .ldif
ldapadd -D "cn=admin,dc=neoclub,dc=cn" -W -x -f test_user.ldif
ldapadd -D "cn=admin,dc=neoclub,dc=cn" -W -x -f test_group.ldif
  1. 查看已创建的test 用户的memberOf 属性
ldapsearch -LL -Y EXTERNAL -H ldapi:/// "(uid=test)" -b dc=neoclub,dc=cn memberOf

dn: cn=test,ou=People,dc=shigen,dc=com
memberOf: cn=test_admin,ou=Group,dc=neoclub,dc=cn


文章参考: https://cloud.tencent.com/developer/article/1349459
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值