• 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

  • 相关阅读:
    JAVA 调用https接口, java.security.cert.CertificateException
    Java泛型用法总结
    深入探索 Java 热部署
    单例模式
    Java中的事务——JDBC事务和JTA事务
    常见的网站攻击手段及预防措施
    JAVA 动态代理原理和实现
    详解 CAP 定理 Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)
    Set
    List
  • 原文地址:https://www.cnblogs.com/JesseFang/p/2083150.html
Copyright © 2020-2023  润新知