7.如何在OpenLDAP中实现将一个用户添加到多个组
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢
1.文档编写目的
在前面的文章Fayson讲了《1.如何在CentOS6.5安装OpenLDAP并配置客户端》、《2.OpenLDAP集成SSH登录并使用SSSD同步用户》、《3.如何实现OpenLDAP的主主同步》、《4. 如何为Hive配置OpenLDAP认证》、《5.如何为Impala配置OpenLDAP认证》以及《6.如何为Hue配置OpenLDAP认证》。本篇文章主要介绍如何在OpenLDAP中将一个用户添加到多个组中。
- 内容概述
1.测试环境描述
2.添加测试用户及用户组
3.验证用户组
- 测试环境
1.CentOS6.5
2.OpenLDAP版本2.4.40
- 前置条件
1.OpenLDAP已安装且正常使用
2.测试环境描述
- OpenLDAP服务信息
IP地址 |
HOSTNAME |
描述 |
---|---|---|
172.31.7.172 |
ip-172-31-7-172.fayson.com |
OpenLDAP已安装 |
172.31.9.33 |
cdh04.fayson.com |
OpenLDAP已安装 |
这里我们将172.31.7.172做为OpenLDAP的主节点,172.31.9.33做为OpenLDAP的备节点。
3.添加测试用户及用户组
这里我们添加一个测试用户faysontest2,将faysontest2用户添加到faysontest2和faysontest3组中。
1.编辑user_faysontest2.ldif文件,内容如下
[root@ip-172-31-7-172 openldap-ldif]# vim user_faysontest2.ldif
dn: uid=faysontest2,ou=People,dc=fayson,dc=com
uid: faysontest2
cn: faysontest2
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA
shadowLastChange: 17493
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 999
gidNumber: 999
homeDirectory: /home/faysontest2
(可左右滑动)
用户的ldif文件中包含了用户默认的用户组faysontest2,在文件中我们使用gidNumber来添加依赖。
2.编辑group_faysontest2.ldif文件,内容如下
[root@ip-172-31-7-172 openldap-ldif]# vim group_faysontest2.ldif
dn: cn=faysontest2,ou=Group,dc=fayson,dc=com
objectClass: posixGroup
objectClass: top
cn: faysontest2
userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA
gidNumber: 999
dn: cn=faysontest3,ou=Group,dc=fayson,dc=com
objectClass: posixGroup
objectClass: top
cn: faysontest3
userPassword: {SSHA}KYgsfyI/uny0dKPNeMRNG54BdwV6KlWA
gidNumber: 997
memberUid: faysontest2
(可左右滑动)
在组的ldif文件中,我们在faysontest3组条目下增加了memberUid: faysontest2来添加组和用户的依赖关系。
3.将用户和用户组导入OpenLDAP
ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f group_faysontest2.ldif
ldapadd -D "cn=Manager,dc=fayson,dc=com" -W -x -f user_faysontest2.ldif
(可左右滑动)
4.查看用户faysontest2的用户组
[root@ip-172-31-7-172 openldap-ldif]# id faysontest2
uid=999(faysontest2) gid=998(Faysontest2) groups=998(faysontest2),997(faysontest3)
[root@ip-172-31-7-172 openldap-ldif]#
(可左右滑动)
这里我们可以看到faysontest2用户包含了两个组faysontest2和faysontest3
4.将用户添加到已有的组
在用户和用户组已经存在的情况下可以通过ldapmodify命令修改修改条目信息将用户添加到已有的用户组中,下面我们通过示例来说明如何将用户faysontest用户添加到已有的faysontest3组中。
1.查看faysontest现有的用户组
[root@ip-172-31-7-172 openldap-ldif]# id faysontest
uid=510(faysontest) gid=510(faysontest) groups=510(faysontest)
[root@ip-172-31-7-172 openldap-ldif]#
(可左右滑动)
2.编辑update_group_faysontest3.ldif文件,内容如下:
[root@ip-172-31-7-172 openldap-ldif]# vim update_group_faysontest3.ldif
dn: cn=faysontest3,ou=Group,dc=fayson,dc=com
changetype: modify
add: memberUid
memberUid: faysontest
memberUid: faysontest2
(可左右滑动)
如上内容描述向faysontest3用户组中添加faysontest和faysontest2用户
3.使用如下命令导入修改的ldif文件
ldapmodify -x -D "cn=Manager,dc=fayson,dc=com" -W -f update_group_faysontest3.ldif
(可左右滑动)
4.查看faysontest用户是否在faysontest3组中
[root@ip-172-31-7-172 openldap-ldif]# id faysontest
uid=510(faysontest) gid=510(faysontest) groups=510(faysontest),997(faysontest3)
[root@ip-172-31-7-172 openldap-ldif]#
(可左右滑动)
这里我们看到将faysontest用户添加到了faysontest3用户组中。
5.总结
- 如果需要用户拥有多个组,只需要在需要加入组的条目下增加一条记录memberUid: faysontest2,faysontest2即为你用户的uid。
- 一个组条目下支持多个memberUid属性。
更多openldap命令参考:
http://www.tldp.org/HOWTO/LDAP-HOWTO/utilities.html
提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- dedecms自定义表单提交成功后提示信息修改和跳转链接修改
- dede:arclist orderby=weight dedecms列表页文章按权重排序无效问题
- Golang语言社区--Go语言基础第二节变量
- 如何让帝国CMS7.2搜索模板支持动态标签调用
- 数据视觉盛宴—数据可视化实践之美
- 使用Tensorflow对象检测在安卓手机上“寻找”皮卡丘
- 群用户通过微信小程序可以更好地协作了
- RNN入门与实践
- 群分享:关于Markdown,你可能想知道的
- Logistic回归基础篇之梯度上升算法
- IIS下实现帝国CMS搜索页伪静态
- ASP.NET MVC学习笔记06编辑方法和编辑视图
- 第一篇示例博客
- C#历代版本新特性——面试题常用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HDU - 1253 胜利大逃亡(搜索)
- Android7.0版本影响开发的改进分析
- POJ - 2251 Dungeon Master(搜索)
- An Overview of PostgreSQL & MySQL Cross Replication
- POJ - 1321 棋盘问题
- CREATE TABLE ... WITH storage_parameter [= value] [, ... ]
- Windows窗口模板
- TabLayout关联ViewPager后不显示文字的解决方法
- POJ - 3278 Catch That Cow 简单搜索
- Codeforce 239 B. Easy Tape Programming
- Codeforces Round #530 (Div. 1) 1098A Sum in the tree
- 非易失性WAL buffer实现解析(三)
- android实现切换日期左右无限滑动效果
- 疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串
- PostgreSQL WAL解析:构建WAL记录准备