ldap tools 使用
时间:2011-06-16
来源:JesseFang
ldap的命令行工具,这里分别列举了oracle 10.2客户端安装包自带的工具($ORACLE_HOME/bin路径下)和OpenLDAP 2.2包含的客户端工具。
搜索
以下2个搜索结果是等价的,都是将basedn 'dc=zj,DC=com' 下的整棵树显示出来(Base DN必须指定)。
差别:oracle 可以用 -X 打印出XML样式的输出;而 OpenLDAP 默认会输出许多注释(版本,数量,当前记录是什么),可用 -LLL 全部禁用掉。
OpenLDAP 默认是 sasl 验证,所以需要 -x 选项指定 simple auth。
OpenLDAP 中 filter 如果为空,则默认等于 'objectclass=*' ;而 oracle 必须指定 filter。
如果filter后紧接着Attr是 '' 则表示只输出dn,对两者都是一样的。
oracle 10.2:
ldapsearch -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -s sub -b 'dc=zj,DC=com' 'objectclass=*'
openldap 2.2:
ldapsearch -x -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -s sub -b 'dc=zj,DC=com'
添加
下面两个操作都表示从文件 file.ldif 中导入
-c 选项都表示,遇到错误继续(默认行为是遇到错误即停止添加操作)
oracle 10.2:
ldapadd -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -f file.ldif
openldap 2.2:
ldapadd -x -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -f file.ldif
删除
因为 ldapdelete 不支持递归删除,所以这里用一个shell脚本来完成该任务。
这里的例子表示删除 DN 为 ou=People,dc=zj,DC=com 及其下面的所有 children
1 #! /bin/sh
2 # For openldap
3
4 # 临时文件
5 DELETE_ENTRY_FILE=/tmp/$$.ldif
6
7 # 输出ou=People,dc=zj,DC=com下的所有DN。注意这里对结果进行了反转,即最后一行转置位第一行
8 ldapsearch -x -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -s sub -b 'ou=People,dc=zj,DC=com' -LLL '' | sed -e 's+^dn: *++' |tac > $DELETE_ENTRY_FILE
9
10 # 删除文件中列出的DN
11 ldapdelete -x -h localhost -p 389 -D 'cn=root,dc=zj,DC=com' -w 123qwe -f $DELETE_ENTRY_FILE
12
13 # 删除临时文件
14 rm $DELETE_ENTRY_FILE
热门阅读
- office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
- 如何安装mysql8.0
阅读:31
- Word快速设置标题样式步骤详解
阅读:28
- 20+道必知必会的Vue面试题(附答案解析)
阅读:37
- HTML如何制作表单
阅读:22
- 百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
- ET文件格式和XLS格式文件之间如何转化?
阅读:24
- react和vue的区别及优缺点是什么
阅读:121
- 支付宝人脸识别如何关闭?
阅读:21
- 腾讯微云怎么修改照片或视频备份路径?
阅读:28