ldap tools 使用

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  - - h localhost  - 389   - ' cn=root,dc=zj,DC=com '   - w 123qwe   - s sub  - ' ou=People,dc=zj,DC=com '   - LLL  ''   |  sed  - ' s+^dn: *++ '   | tac  >  $DELETE_ENTRY_FILE
 9 
10  #  删除文件中列出的DN
11  ldapdelete  - - h localhost  - 389   - ' cn=root,dc=zj,DC=com '   - w 123qwe  - f $DELETE_ENTRY_FILE
12 
13  #  删除临时文件
14  rm $DELETE_ENTRY_FILE

 

转载于:https://www.cnblogs.com/JesseFang/archive/2011/06/16/2083150.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值