openldap导入数据(二)

第二种导入数据到ldap中的方法是手工导入,当然手工导入也分为两种,第一种是通过手工编辑ldif文件,然后使用ldapadd命令导入;第二种是直接使用ldapadd命令,在交互模式下进行数据录入。

第一种:通过手工编辑ldif文件导入数据

下面我手工编辑两个ldif文件:

[[email protected] ~]# cat ou.ldif

dn: ou=sudoers,ou=people,dc=contoso,dc=com

objectClass: organizationalUnit

ou: sudoers

dn: ou=superusers,ou=people,dc=contoso,dc=com

objectClass: organizationalUnit

ou: superusers

dn: ou=disabled,ou=people,dc=contoso,dc=com

objectClass: organizationalUnit

ou: disabled

[[email protected] ~]# cat user.ldif

dn: uid=test01,ou=sudoers,ou=People,dc=contoso,dc=com

uid: test01

cn: test01

objectClass: account

objectClass: posixAccount

userPassword: {crypt}$6$xVZ5hNeH$GzlC19E6Tiq/4Y3HmtCwRjjKVzvcI2IA.z.QPqhwHU.mSV1UT7uZiaVG8HelvbgZJsn3Z1te75C/DNZ.C0Ov50

loginShell: /bin/bash

uidNumber: 10006

gidNumber: 10006

homeDirectory: /home/test01

dn: uid=test02,ou=superusers,ou=People,dc=contoso,dc=com

uid: test02

cn: test02

objectClass: account

objectClass: posixAccount

userPassword: {crypt}$6$xVZ5hNeH$GzlC19E6Tiq/4Y3HmtCwRjjKVzvcI2IA.z.QPqhwHU.mSV1UT7uZiaVG8HelvbgZJsn3Z1te75C/DNZ.C0Ov50

loginShell: /bin/bash

uidNumber: 10007

gidNumber: 10007

homeDirectory: /home/test02

dn: uid=test03,ou=disabled,ou=People,dc=contoso,dc=com

uid: test03

cn: test03

objectClass: account

objectClass: posixAccount

userPassword: {crypt}$6$xVZ5hNeH$GzlC19E6Tiq/4Y3HmtCwRjjKVzvcI2IA.z.QPqhwHU.mSV1UT7uZiaVG8HelvbgZJsn3Z1te75C/DNZ.C0Ov50

loginShell: /bin/bash

uidNumber: 10008

gidNumber: 10008

homeDirectory: /home/test03

然后使用ldapadd进行导入:

[[email protected] ~]# ldapadd -x -D "cn=admin,dc=contoso,dc=com" -W -f ou.ldif

Enter LDAP Password:

adding new entry "ou=sudoers,ou=people,dc=contoso,dc=com"

adding new entry "ou=superusers,ou=people,dc=contoso,dc=com"

adding new entry "ou=disabled,ou=people,dc=contoso,dc=com"

[[email protected] ~]# ldapadd -x -D "cn=admin,dc=contoso,dc=com" -W -f user.ldif

Enter LDAP Password:

adding new entry "uid=test01,ou=sudoers,ou=People,dc=contoso,dc=com"

adding new entry "uid=test02,ou=superusers,ou=People,dc=contoso,dc=com"

adding new entry "uid=test03,ou=disabled,ou=People,dc=contoso,dc=com"

第二种:在ldapadd命令的交互模式下手工录入

输入ldapadd -x -D "cn=admin,dc=contoso,dc=com" -W命令,回车之后输入admin的密码,然后就进入交互模式,此时就可以输入要录入的ldap信息了,录入完成后按Ctrl+d键存盘退出交互模式,如果信息录入无误就会成功导入。

这里面最容易出错的地方是对象类和属性的对应关系出错,对象类和属性是在schema文档中定义的。它们之间的关系是这样的,对象类中有些属性是必选的,有些属性是可选的。录入信息的属性必须在对象类中有定义才能用。同时,也需要注意每一行后面一定不能有空格,不然会报错。

[[email protected] ~]# ldapadd -x -D "cn=admin,dc=contoso,dc=com" -W

Enter LDAP Password:

dn: uid=developer,ou=sudoers,ou=people,dc=contoso,dc=com

uid: developer

cn: developer

objectClass: account

objectClass: posixAccount

userPassword: 123456

loginShell: /bin/bash

uidNumber: 10010

gidNumber: 10010

homeDirectory: /home/developeradding new entry "uid=developer,ou=sudoers,ou=people,dc=contoso,dc=com"

录入成功之后,我对新添加的developer进行一个检索:

[[email protected] ~]# ldapsearch -LLL -x -D "cn=admin,dc=contoso,dc=com" -W -b "dc=contoso,dc=com" ‘(uid=developer)‘

Enter LDAP Password:

dn: uid=developer,ou=sudoers,ou=People,dc=contoso,dc=com

uid: developer

cn: developer

objectClass: account

objectClass: posixAccount

userPassword:: MTIzNDU2

loginShell: /bin/bash

uidNumber: 10010

gidNumber: 10010

homeDirectory: /home/developer

OK,成功搜索到刚刚添加的developer用户,说明手工录入成功。

鉴于手工录入容易出错,而且对象类和属性的关系容易记错,所以一般都不适用手工录入的方法,而手工生成ldif文件进行导入的方法不错,可以通过对比原有的数据进行ldif文件的编写,也避免在ldapadd命令交换模式下容易多空格、编辑困难等问题,所以建议使用第一种方式,当然,这只是在这两种方式之间的选择,下一篇将介绍使用ldap客户端进行数据管理,也是一个可选的方案。

时间: 2024-10-05 09:12:21

openldap导入数据(二)的相关文章

Openldap导入数据(四)

由于篇幅有限,上一篇只介绍了Linux上ldap的两款管理软件,Ldap Account Manager和PhpLdapAdmin的部署和简单使用,只能再起一篇介绍Windows上的ldap管理软件.可能提到windows,很多玩Linux的人就会说"珍爱生命,远离Windows""戒毒戒赌戒Windows"之类的口号,可是真正能脱离windows的运维我至今也就见到过一个,好吧,就不扯远了.其实在Linux上使用LAM或者PLA,其实还是要在浏览器中进行操作,而且

Openldap导入数据(一)

在安装完openldap之后,默认ldap中是没有数据的,需要管理员进行添加,当然添加的方法也不止一种,这里先介绍第一种方法:从本地系统添加用户到ldap中. [[email protected] ~]# ldapsearch -x -b "dc=contoso,dc=com" # extended LDIF # # LDAPv3 # base <dc=contoso,dc=com> with scope subtree # filter: (objectclass=*)

Openldap导入数据(三)

无论是通过本地系统用户和组转换为ldap相关数据,还是通过ldif文件导入,都无法做到所见即所得,仿佛openldap就无法有一个真正可视化的操作界面一样.我们都知道,通过本地系统转换步骤繁琐,通过ldif进行导入或ldapadd交互命令录入又容易出错,且需要对ldap数据结构特别清晰,所以如果有可视化的界面的话,对openldap的管理和编辑就会变得大大简化.值得高兴的是,这种可视化的工具很早就出现了,而且大大提高了我们的工作效率,在此就分别介绍一下Linux上和Windows上的ldap可视

【实验总结二】如何从文本中批量导入数据

前言:我的mysql装的时候没有配置导入数据,所以贸然导入会报错,我可是为那个错误纠结了好久,现在和朋友们分享一下我实验中遇到的坑: mysql --enable-local-infile -u root -p (这一句一定要写,如果网上的方法你都试了一遍仍说和version不兼容的话,一定要试一试这一句). LOAD DATA local INFILE '完整路径' INTO table: 大功告成咯,注意文本中条目之间tab隔开(一个tab就好,忽略对齐问题,要和表的结构对应哦,还有一点,表

Hive数据导入——数据存储在Hadoop分布式文件系统中,往Hive表里面导入数据只是简单的将数据移动到表所在的目录中!

转自:http://blog.csdn.net/lifuxiangcaohui/article/details/40588929 Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中.Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据.所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中! Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中

django 批量导入数据

一.需求 我在数据库中建了一张表,用来保存ucloud云上的project id 和project name models.py代码如下 #coding:utf-8 from django.db import models class Project(models.Model):     name = models.CharField(u'项目名称',max_length=32,blank=True)     id = models.CharField(u'项目ID',max_length=32

hive 导入数据的四种方式

Hive的几种常见的数据导入方式这里介绍四种:(1).从本地文件系统中导入数据到Hive表:(2).从HDFS上导入数据到Hive表:(3).从别的表中查询出相应的数据并导入到Hive表中:(4).在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中. 一.从本地文件系统中导入数据到Hive表 先在Hive里面创建好表,如下: hive> create table wyp > (id int, name string, > age int, tel string) >

mysql 5.5 导入数据 和 [【乱码解决

今日导入数据到阿里云上的mysql 5.5,遇到乱码问题,参考了网上不少相关帖子,顺便记录下来,供参考: # mysql --version mysql  Ver 14.14 Distrib 5.5.40, for linux2.6 (x86_64) using readline 5.1 1)先查看编码信息: mysql> show variables like 'character%' -> ; +--------------------------+--------------------

MySQL 之 导出导入数据

导出数据库(sql脚本)  mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p --databases db_name > test_db.sql                 ##得到整个数据库,最全面::不要--databases也行,就是不够信息全面 mysql导出数据库一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u wcnc -p test_db users>