CSDN博客

img wodeyouxian

LDAP使用小结一,命令行下成批添加子目录

发表于2008/9/28 0:58:00  1046人阅读

//原创,大量参考了SUN文档,在此对作者表示感谢 

使用ldap服务器已经有很长一段时间了,现在终于下定决心将以往的经验教训加以总结,免得以后忘记了,今天先做出第一篇,记录的添加.互联网上这方面的资料暂时还不多,不过也给我了很大的帮助,在此先谢谢他们.
   下面言归正传:
   任务需求:在现有树下面添加n条记录,因为n为较大整数,难以手工操作,现通过程序实现.
步骤:
   1.导出该树下的一条记录,如果该树下目前没有任何记录,可以新添加一条记录,然后再导出,目的是得到记录在该树下的格式.命令为:
  ./ldapsearch -i gb2312 -D  -w - -b "ou=teacher,o=myManager,dc=mytest,dc=tzc,dc=edu,dc=cn" -T "(objectClass=*)" > temp.txt
=====================
命令详解:
  ldapsearch 是ldap服务器提供的命令行工具,用于查询
  参数 -i:指定命令行的字符集,带这个参数就可以使用中文进行查询了.
  参数 -D:绑定的管理员.
    参数  -w: 管理员密码,可以直接跟在后面,也可以用-代表,在命令后输入.
    参数  -b: 查询的条件,一般以最近根节点为查询条件. 
    参数  -T: 以长格式输出
    参数  -B: 以utf-8编码格式输出
    参数  -h: ldap服务器的IP地址
    参数  -p: ldap服务器的TCP端口号
    "(objectClass=*)" :输出显示字段,后面还可以再带几个字段,如uid,userpassword等.
======================
输出结果:
version: 1
dn: ou=teacher,o=myManager,dc=mytest,dc=tzc,dc=edu,dc=cn
ou: teacher
objectClass: organizationalUnit
objectClass: iplanet-am-managed-people-container
objectClass: top
dn: uid=2005031,ou=teacher,o=myManager,dc=mytest,dc=tzc,dc=edu,dc=cn
sn:: 55Sw
cn:: 55Sw5Lqs5rOi
iplanet-am-modifiable-by: cn=Top-level Admin Role,dc=mytest,dc=tzc,dc=edu,dc=cn
inetUserStatus: Active
uid: 2005031
objectClass: iplanetpreferences
objectClass: iplanet-am-managed-person
objectClass: top
objectClass: iplanet-am-user-service
objectClass: organizationalperson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: person
objectClass: iplanet-am-auth-configuration-service
objectClass: inetuser
userPassword: {SSHA}/zstswFjVD552X9h2aVeIl5dM3j7fvpw9VI3NQ==
iplanet-am-user-auth-config: [Empty]
*********************************************************************************************
2.修改输出的文件,修改后的文件如下:
dn: uid=yourNO,ou=teacher,o=myManager,dc=mytest,dc=tzc,dc=edu,dc=cn
sn: 姓
cn: 姓名
iplanet-am-modifiable-by: cn=Top-level Admin Role,dc=mytest,dc=tzc,dc=edu,dc=cn
inetUserStatus: Active
uid: yourNO
objectClass: iplanetpreferences
objectClass: iplanet-am-managed-person
objectClass: top
objectClass: iplanet-am-user-service
objectClass: organizationalperson
objectClass: inetadmin
objectClass: inetorgperson
objectClass: person
objectClass: iplanet-am-auth-configuration-service
objectClass: inetuser
userPassword: yourPassword
iplanet-am-user-auth-config: [Empty]
===============

注意事项:
    1) uid应该修改成要添加的记录uid,有两处要修改
    2) sn 后面只有一个冒号,导出的时候有两个,应该去掉一个,此处可以使用中文
    3) cn 后面只有一个冒号,导出的时候有两个,应该去掉一个,此处可以使用中文
    4) userPassword 后面可以跟密码的明文,ldap服务器会自动进行加密.
    5) 可以将多个记录合并在一个文件里,用空行隔开即可一次性将多条记录导入.
    6) 可使用程序将要加的记录从文本中读取,再生成执行脚本.
*********************************************************************************************
3.修改后的文件要转换成utf-8编码格式,因为ldap服务器是采用utf-8编码的,否则可能会有乱码的问题.
  iconv -f gb2312 -t utf-8 temp.txt > tempUTF8.txt
*******************************************************************************************

4.导入系统.
  ./ldapmodify -D "cn=directory manager" -w - -a -c -f tempUTF8.txt
=====================
命令详解:
  ldapmodify 是ldap服务器提供的命令行工具,用于修改,包括添加
  参数 -i:指定命令行的字符集,带这个参数就可以使用中文进行操作了,但只限于命令行.
  参数 -D:绑定的管理员.
    参数  -w: 管理员密码,可以直接跟在后面,也可以用-代表,在命令后输入.
    参数  -a: 添加目录 
    参数  -c: 遇到错误时继续运行.
    参数  -f: 导入的记录信息文件.
======================

0 0

相关博文

我的热门文章

img
取 消
img