一:创建用户
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的用户已创建成功,下面就是权限控制了。