Bootstrap

LDAP系列二创建用户

一:创建用户

1:概述

默认情况下在slapd.conf文件中配置有超级管理员账号,除了这个账号外,我们还可以添加其他的管理员账号,并控制相应的权限,比如只读,可写。Ldap新增用户,可以通过客户端工具实现,也可以通过命令来实现。我这里主要通过ldapadd命令来实现。

目前ldapadd命令只支持ldif格式文件,生成LDIF格式文件

往openldap数据库存放数据,有多种方式:1. 手动编辑;2. 用工具生成

手动编辑这里不介绍。工具生成指的是用migrationtools脚本来产生ldif文件

2:安装migrationtools

2.1安装

yum -y install migrationtools

2.2确认是否安装完成

yum list installed | grep migrationtools

3:创建linux用户组和用户

3.1创建用户组和用户(密码设置为123456)

groupadd ldapgroupxu

useradd -g ldapgroupxu ldapuserxu

passwd ldapuserxu

 

3.2验证是否创建成功

4:修改migrationtools配置文件

cd     /usr/share/migrationtools 可以看到很多的文件

vim   migrate_common.ph(修改前先备份下)

这里改为自己需要修改的即可。

5:将系统用户生成ldif文件

备注:其实ldap用户和linux系统用户我理解没有什么关系,这里这么弄只是为了用工具生成固定格式的ldif文件,后期可以不用建linux用户,自己编辑ldif文件即可。

5.1生成符合ldap格式的ldif文件

cd  /usr/share/migrationtools 在这个目录下执行下面两句,可以看到,生成了两个文件

./migrate_passwd.pl /etc/passwd passwd.ldif

./migrate_group.pl /etc/group group.ldif

 

5.2修改整理ldif文件,删除系统账号与不需要的账号以及用户组

这里只留下自己创建的即可。

6:导入所属组和密码文件

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

ldapadd -x -W -D "cn=ldapadmin,dc=example,tongdc=com" -f group.ldif

ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com" -f group.ldif

这个时候会报错,是因为group.ldif中的ou=Group没有,所以需要创建

6.2通过客户端工具创建ou

我这里使用的是ldapadmin工具来创建的。

 

然后再次运行

 

6.3通过ldif文件导入,生成ou

创建ldap的根项目

新建一个ldapbase.ldif文件

内容为

dn: dc=example,dc=com

dc: example

objectClass: top

objectClass: domain

 

dn: ou=Group,dc= example,dc=com

objectClass: organizationalUnit

ou: Group

 

dn: ou=People,dc=example,dc=com

objectClass: organizationalUnit

ou: People

 

上传到/usr/share/migrationtools目录

执行以下命令

ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com "  -f ldapbase.ldif

 

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

ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com " -f passwd.ldif

 

运行命令前创建ou= People

7:连接ldap

进入后提示

然后测试链接  如果成功就OK了..  真的是这样么???    NO....

 

错误一: 当你测试链接成功以后点击OK.  然后双击这个绿色的小房子会报错!!提示 "ldap error 无此对象"

 

错误二:当你使用命令通过ldif文件导入OU的时候会提示 "ldap_add: No such object (32)"

 

 

 

报错与解决:

其实这两个错的是同一个问题引起的.  你在配置文件里面添加了 suffix "dc=enfinium,dc=local"   但是启动服务后,ldap并没有给你创建根项目.所以在ldif文件中要配置创建根项目的语句

7.1创建ldap的根项目

新建一个ldapbase.ldif文件

内容为

dn: dc=example,dc=com

dc: example

objectClass: top

objectClass: domain

 

dn: ou=Group,dc=example,dc=com

objectClass: organizationalUnit

ou: Group

 

dn: ou=People,dc=example,dc=com

objectClass: organizationalUnit

ou: People

 

上传到/usr/share/migrationtools目录

执行以下命令

ldapadd -x -W -D " uid=ldapadmin,dc=example,dc=com "  -f ldapbase.ldif

 

可以通过-c参数,强制添加,就可以了

ldapadd -x -c -W -D "uid=ldapadmin,dc=example,dc=com" -f ldapbase.ldif

ldapsearch -x -H ldap://***:389 -b  "uid=90001019,cn=person,dc=example,dc=com" -D "uid=ldapadmin,dc=example,dc=com" -w  *****

7.2如果上面的步骤执行完成后,连接仍然报错。需要执行以下步骤

service slapd start

  rm -rf /etc/openldap/slapd.d/*

  slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

  chown -R ldap:ldap /etc/openldap/slapd.d/

  service slapd restart

修改权限

chown -R ldap.ldap /etc/openldap/*

chown -R ldap.ldap /var/lib/ldap/*

 

 

 

至此ldap的用户已创建成功,下面就是权限控制了。

;