本节书摘来自异步社区《Linux/UNIX OpenLDAP实战指南》一书中的第2章,第2.7节,作者:郭大勇著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.7 OpenLDAP用户以及与用户组相关的配置

添加用户和用户组的方式有两种。一种是将系统用户通过migrationtools工具生成LDIF文件并结合ldapadd命令导入OpenLDAP目录树中,生成OpenLDAP用户。另一种通过自定义LDIF文件并通过OpenLDAP命令进行添加或者修改操作。本节分别介绍两种方法的实现来完成OpenLDAP用户的添加。

2.7.1 通过migrationtools实现OpenLDAP用户及用户组的添加
migrationtools开源工具通过查找/etc/passwd、/etc/shadow、/etc/groups生成LDIF文件,并通过ldapadd命令更新数据库数据,完成用户添加。具体步骤如下。

1)安装migrationtools工具。

# yum install migrationtools -y
2)创建OpenLDAP根域条目。

# /usr/share/migrationtools/migrate_base.pl > base.ldif
读者可以编辑base.ldif进行修改,将不需要的条目删除,然后通过ldapadd导入至OpenLDAP目录树。

3)添加用户用于生成OpenLDAP用户。

此处添加系统普通用户。通过以下脚本添加user1~user5。

# vim adduser.sh
#!/bin/bash
# Add system user
for ldap in {1..5};doif id user${ldap} &> /dev/null;thenecho "System account already exists"elseadduser user${ldap}echo user${ldap} | passwd --stdin user${ldap} &> /dev/nullecho "user${ldap} system add finish"fi
done
# chmod +x adduser.sh
# ./adduser.sh
# id user1
uid=502(user1) gid=502(user1) groups=502(user1)

4)配置migrationtools配置文件。

migrationtools配置文件
$DEFAULT_MAIL_DOMAIN = "padl.com";# Default base
$DEFAULT_BASE = "dc=padl,dc=com";

将以上内容修改为自己所定义的域名,例如本章以gdy.com为准。

$DEFAULT_MAIL_DOMAIN = "gdy.com";# Default base
$DEFAULT_BASE = "dc=gdy,dc=com";

5)通过migrationtools工具生成LDIF模板文件并生成系统用户及组LDIF文件。

# tail -n 5 /etc/passwd > system
# /usr/share/migrationtools/migrate_passwd.pl system people.ldif
# tail -n 10 /etc/group > group
# /usr/share/migrationtools/migrate_group.pl group group.ldif

6)查看生成的LDIF文件。

查看生成的people.ldif条目信息。

# head -n 5 people.ldif
dn: uid=user1,ou=People,dc=gdy,dc=com
uid: user1
cn: user1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$6$HtmehKu8$g.vhVs1PjCwzvpO7PiWxaY1E0sQH4M2fOwr/NKAI20q/   c3rWgEbdzPfQS/Bxznhi1IpwMZbQrcNDTt5NFUEYd.
shadowLastCh ange: 16497
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 502
gidNumber: 502
homeDirectory: /home/user1

查看生成的group.ldif条目信息。

# head -n 20 group.ldif
dn: cn=user1,ou=Group,dc=gdy,dc=com
objectClass: posixGroup
objectClass: top
cn: user1
gidNumber: 502dn: cn=user2,ou=Group,dc=gdy,dc=com
objectClass: posixGroup
objectClass: top
cn: user2
gidNumber: 503

读者可以将不需要的条目信息进行修改,满足当前需求,然后通过ldapdd导入。

7)利用ldapadd导入模板文件中的内容。

导入用户LDIF文件至OpenLDAP目录树中,生成用户。

# ldapadd -x -W -D "cn=Manager,dc=gdy,dc=com" -f people.ldif
Enter LDAP Password:   输入OpenLDAP管理员账号密码  (cn=Manager)
adding new entry "uid=user1,ou=People,dc=gdy,dc=com"adding new entry "uid=user2,ou=People,dc=gdy,dc=com"adding new entry "uid=user3,ou=People,dc=gdy,dc=com"adding new entry "uid=user4,ou=People,dc=gdy,dc=com"adding new entry "uid=user5,ou=People,dc=gdy,dc=com"

导入组LDIF文件至OpenLDAP目录树中,生成用户组。

# ldapadd -x -W -D "cn=Manager,dc=gdy,dc=com" -f group.ldif
Enter LDAP Password:    #输入OpenLDAP管理员账号密码(cn=Manager)
adding new entry "cn=user1,ou=Group,dc=gdy,dc=com"adding new entry "cn=user2,ou=Group,dc=gdy,dc=com"adding new entry "cn=user3,ou=Group,dc=gdy,dc=com"adding new entry "cn=user4,ou=Group,dc=gdy,dc=com"adding new entry "cn=user5,ou=Group,dc=gdy,dc=com"

8)查询添加的OpenLDAP用户信息。

# ldapsearch -LLL -x -D 'cn=Manager,dc=gdy,dc=com' -W -b 'dc=gdy,dc=com' 'uid=user1'
Enter LDAP Password:
dn: uid=user1,ou=People,dc=gdy,dc=com
uid: user1
cn: user1
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQ2JEh0bWVoS3U4JGcudmhWczFQakN3enZwTzdQaVd4YVkxRTBzUUg
shadowLastChange: 16497
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 502
gidNumber: 502
homeDirectory: /home/user1

至此通过migrationtools工具实现了本地用户和本地组的迁移,并且通过ldapsearch成功过滤(filter)查询匹配user1的用户属性信息。关于filter的更多信息,可以通过查询ldapsearch的帮助手册来了解。

2.7.2 自定义LDIF文件添加用户及用户组条目
前面通过定义LDIF文件添加用户和用户组信息,然后通过ldapdd进行添加,同样也可通过下面的方法进行添加。作者强力建议通过定制LDIF文件添加目录树条目。具体步骤如下。

1)定义LDIF用户文件。

前面通过head –n 20 people.ldif定义符合要求的用户属性信息,然后通过ldapadd进行导入即可,这里不做过多阐述。同样可以通过下面这种方法来实现用户和用户组的添加。

cat << EOF |  ldapadd -x -D cn=Manager,dc=gdy,dc=com -W
dn: uid=gdy,ou=people,dc=gdy,dc=com
objectClass: posixAccount
objectClass: shadowAccount
objectClass: person
objectClass: inetOrgPerson
cn: System
sn: 郭
givenName: 大勇
displayName: 郭大勇
uid: gdy                  //OpenLDAP的uid信息
userPassword: password@123     //账号的密码,可以使用密文也可以使用明文,这里使用明文进行演示
uidNumber: 1001            //账号的UID
gidNumber: 1001              //账号的GID
gecos: System Manager
homeDirectory: /home/gdy       //用户的主目录指定
loginShell: /bin/nologin       //用户登录的SHELL
shadowLastChange: 16020        //用户最后一次修改密码的时间,自1970/1/1起,密码被修改的天数
shadowMin: 0              //密码将允许修改的天数(0代表任何时间都可以进行修改)
shadowMax: 999999              //系统强制用户修改为新密码的天数(1代表永远都不能进行修改)
shadowWarning: 7               //密码过期7天进行报告
shadowExpire: -1           //密码过期后,账号状态
employeeNumber: ******        //工号相关信息
homePhone: 0512********        //家庭电话
mobile: **************         //手机号码信息
mail: dayong_guo@126.com       //邮箱地址
postalAddress: 上海             //住址相关信息
initials: Test
EOF
Enter LDAP Password:  ===  此处要输入Manager用户的密码
adding new entry "uid=gdy,ou=people,dc=gdy,dc=com"

此LDIF文件中存在中文字符,建议使用Linux dos2unix命令进行转换,例如dos2unix -k –n file new_file。作者建议尽可能不要使用中文字符进行添加,而使用英文添加。

2)查看当前OpenLDAP服务器目录树信息。

[root@mldap01 ~]# ldapsearch -x -LLL -H ldap:/// -b dc=gdy,dc=com dn
dn: dc=gdy,dc=com
//基准目录树信息
dn: ou=people,dc=gdy,dc=com
//用户或人员组,相当于系统组概念

《Linux/UNIX OpenLDAP实战指南》——2.7 OpenLDAP用户以及与用户组相关的配置相关推荐

  1. OpenLDAP实战指南上市发售

       运维界--开源集中统一账号管理平台 - OpenLDAP实战指南,感谢大家的支持和帮助,本书才能得以顺利出版,并将此书献给热爱开源技术的伙伴们.        本书通过基础篇.高级篇.实战篇循序 ...

  2. 《Linux/UNIX OpenLDAP实战指南》——1.8 自动化运维解决方案

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第1章,第1.8节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1 ...

  3. 《Linux/UNIX OpenLDAP实战指南》——第2章 OpenLDAP服务器安装与配置 2.1OpenLDAP平台支持...

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.1节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 第 ...

  4. 《Linux/UNIX OpenLDAP实战指南》——2.3 Linux平台安装

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.3节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2 ...

  5. 《Linux/UNIX OpenLDAP实战指南》——2.5 OpenLDAP单节点配置案例

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.5节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2 ...

  6. 《Linux/UNIX OpenLDAP实战指南》——2.4 OpenLDAP配置

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.4节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2 ...

  7. 《Linux/UNIX OpenLDAP实战指南》——1.3 OpenLDAP schema概念

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第1章,第1.3节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 1 ...

  8. 《Linux/UNIX OpenLDAP实战指南》——2.8 OpenLDAP索引

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.8节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2 ...

  9. 《Linux/UNIX OpenLDAP实战指南》——2.6 OpenLDAP目录树规划

    本节书摘来自异步社区<Linux/UNIX OpenLDAP实战指南>一书中的第2章,第2.6节,作者:郭大勇著,更多章节内容可以访问云栖社区"异步社区"公众号查看 2 ...

最新文章

  1. 使用 COM 风格的编程接口
  2. JQUERY获取当前页面的URL信息
  3. 12c oracle 激活_Windows运维之Windows server 2016 安装及ORACLE 12C 安装
  4. 提高WordPress访问速度与性能的技巧总结
  5. Fedora/Redhat 在线安装更新软件包,yum 篇 ── 给新手指南 (转载)
  6. mybatis 批量提交清除缓存_重学Mybatis(三)-------缓存 (含面试题)
  7. 按钮加ico图标_花里胡哨系列 —— 自定义U盘图标
  8. 计算机求百钱买百鸡采用的算法,多种解法求百钱百鸡问题.doc
  9. 02 java多线程基础
  10. paip.输入法编程----一级汉字1000个
  11. 南阳理工ACM 题目24 素数距离问题
  12. python上传文件接口_Python接口测试文件上传实例解析
  13. vue-json-editor实现json编辑器并且可以正常输入中文
  14. Tomcat 6.0 安装与启动
  15. 什么模拟器可以完全模拟真机_什么是模拟器?
  16. 先睹为快,Go2 Error 的挣扎之路
  17. 系统状态空间模型c语言,【单选题】能完全描述系统动态行为的数学模型是() A. 传递函数 B. 微分方程 C. 状态 空间表...
  18. SpringBoot的个人博客管理系统(毕业论文范文)
  19. 28天打造专业红客(十一)
  20. 入门:因果推断 简介

热门文章

  1. EF and our country
  2. 一文解读Nginx+Tomcat实现负载均衡、动静分离
  3. 一份基于SSM框架实现的支付宝支付功能,附完整源代码
  4. SpringMvc用mybatis连接Mysql数据库
  5. 关于嵌入式系统维修解决方案
  6. 吉里吉里2相关的一些引用资料
  7. nginx5种负载策略的设置方法
  8. 最小堆 构建、插入、删除的过程图解
  9. 新手商家做Shopee的马来站点有什么运营技巧,快速上手教程
  10. 工作流审批业务代码详解(三)