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

Procedure使用 ldapmodify 移動項目或為其重新命名

此程序會使用修改 DN 作業。執行此作業前,請確定您已熟悉使用修改 DN 作業的指示與限制一節。

針對此程序的某些部分,您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。此程序的其他部分只能使用指令行完成。

  1. 若要將項目從某父系移至另一個父系,請先擴充父系項目的 ACI 權限。

    • 請在要移動之項目的目前父系項目上使用 allow (export ...) 語法,以確定 ACI 允許 export 作業

    • 請在要移動之項目的未來父系項目上使用 allow (import ...) 語法,以確定 ACI 允許 import 作業

    如需有關使用 ACI 的資訊,請參閱第 6 章, 目錄伺服器存取控制

  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
    

    修改此特性後必須重新啟動伺服器,變更方能生效。