Sun Java System Directory Server Enterprise Edition 6.3 管理指南

Procedure使用 ldapmodify 移动或重命名条目

以下过程将使用修改 DN 操作。在开始此操作之前,请确保您已经熟悉使用修改 DN 操作的准则和限制部分的内容。

对于此过程的某些部分,可以使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。此过程的其他部分只能使用命令行完成。


注 –

在修改作为组 uniquemember 的条目 DN 时,必须启用引用完整性插件。引用完整性可确保在移动条目时调整组成员。有关如何启用和配置引用完整性插件的信息,请参见配置引用完整性插件


  1. 如果要将条目从一个父条目移动到另一个父条目中,请在这些父条目上扩展 ACI 权限。

    • 在要移动的条目的当前父条目上,确保 ACI 允许通过使用语法 allow (export ...) 执行导出操作

    • 在要移动的条目的将来父条目上,确保 ACI 允许通过使用语法 allow (import ...) 执行导入操作

    有关使用 ACI 的信息,请参见第 7 章,目录服务器访问控制

  2. 确保全局启用修改 DN 操作,或至少为将受移动操作影响的后缀启用该操作。

    为了确保与以前的目录服务器发行版兼容,默认情况下不启用修改 DN 操作。

    如果以前启用了修改 DN 操作,请转至下一步。

    要为服务器全局启用修改 DN 操作,请使用以下命令:


    $ dsconf set-server-prop -h host -p port moddn-enabled:on
  3. 运行 ldapmodify 命令。

    此步骤将使用修改 DN 操作。执行以下任一操作:

    • 移动条目。

      例如,以下命令可将条目uid=bjensen 从承包商的子树 ou=Contractors,dc=example,dc=com 移动到员工的子树 ou=People,dc=example,dc=com 中:


      $ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
      Enter bind password:
      dn: uid=bjensen,ou=Contractors,dc=example,dc=com
      changetype: modrdn
      newrdn: uid=bjensen
      deleteoldrdn: 0
      newsuperior: ou=People,dc=example,dc=com
    • 重命名条目。

      例如,以下命令可将条目 uid=bbjensen 重命名为 uid=bjensen


      $ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
      Enter bind password:
      dn: uid=bbjensen,ou=People,dc=example,dc=com
      changetype: modrdn
      newrdn: uid=bjensen
      deleteoldrdn: 1

    编写 LDIF 语句时请注意以下属性:

    • dn - 指定要重命名或移动的条目。

    • changetype: modrdn - 指定要使用的修改 DN 操作。

    • newrdn - 提供新的命名属性。

    • deleteoldrdn - 表示是否应该从条目中删除以前的命名属性(1 表示是,0 表示否)。

      请注意,如果命名属性是条目定义中必需的属性,则无法从条目中删除此属性。

    • newsuperior - 指定条目的新上级属性。

    有关 ldapmodify 命令及其选项的信息,请参见 ldapmodify(1) 手册页。

  4. 如果在移动或重命名包含大量条目的子树时遇到资源限制错误,请增加数据库可以使用的锁定数。


    $ dsconf set-server-prop -h host -p port db-lock-count:value
    

    如果修改此属性,则必须重新启动服务器以使更改生效。