Sun ONE logo     上一章     目錄     索引     說明文件首頁     下一章    
Sun ONE Directory Server 管理指南



第 2 章   建立目錄項目

本章討論使用Directory Server 主控台以及 ldapmodify 和 ldapdelete 指令行公用程式修改目錄內容的方式,包括基本類型的結構項目、使用者項目及轉介。此外,本章也涵蓋在選用屬性加密功能 (Directory Server 5.2 新增功能) 時屬性的儲存方式。

在您的目錄開發規劃階段期間,應該描述自己的目錄所要包含的資料類型特徵。建立項目及修改預設結構前,您應該先閱讀《Sun ONE Directory Server 部署指南》第  2 章<設計與存取目錄資料>。

本章假設您對 LDAP 結構及其定義的物件類別和屬性已具備基本知識。如需 Directory Server 所提供的結構及所有物件類別與屬性之定義的簡介,請參閱《Sun ONE Directory Server 參考手冊》中的第 4 章<目錄伺服器結構>。



注意

您必須定義適當的存取控制指示 (ACI) 才能修改您的目錄。如需進一步的資訊,請參閱第 6 章<管理存取控制>。



本章包含下列節:

組態項目

目錄伺服器將所有的組態資訊儲存在下列檔案內:

ServerRoot/slapd-serverID/config/dse.ldif

這個 LDAP 資料交換格式 (LDIF) 的檔案以文字形式描述 LDAP 項目、屬性及其值。這個檔案中的目錄伺服器組態包括:

  • cn=config 項目的屬性和值。
  • cn=config 下樹狀子目錄中的所有項目及其屬性和值。某項目或屬性存在與否通常具有不同的意義。
  • 根項目 ("") 與 cn=monitor 項目的物件類別與存取控制指令 (ACI)。這些項目的其他屬性由伺服器產生。

Directory Server 讓所有組態設定值都可透過 LDAP 進行讀寫。依預設值,目錄的 cn=config 分支只能由 Administration Server 中定義的目錄管理員 (directory administrator) 及目錄管理員 (directory manager) 存取。這些管理使用者可以檢視及修改組態項目,就如同其他任何目錄項目一樣。

您應該避免在 cn=config 項目下建立項目,因為這樣的項目會儲存在 dse.ldif 檔案內,而這個檔案不像普通項目的資料庫一樣具有高度調整性。因此,如果有許多項目 (特別是可能需要經常更新的項目) 儲存在 cn=config 下,可能會降低效能。然而,將特定的使用者項目,例如 [複寫管理員] (供應商連結 DN) 項目儲存在 cn=config 下可能會很有用,因為這樣可集中管理組態資訊。

使用主控台修改組態

建議您使用 Directory Server 主控台最上層的 [組態] 標籤來修改組態。此標籤的面板與對話方塊提供以工作為基礎的控制項,可幫助您快速、有效率地設定組態。此外,主控台介面會為您管理組態的複雜性與相互依存性。

在本文件「使用主控台...」程序中會加以說明主控台的組態介面,這些程序說明如何使用 [組態] 標籤的面板與對話方塊完成特定的管理工作。介面本身會清楚指示儲存組態的方式以及重新啟動伺服器讓變更生效的時機。

從指令行修改組態

因為 cn=config 樹狀子目錄可透過 LDAP 存取,所以可以用 ldapsearch、ldapmodify 和 ldapdelete 指令檢視及修改伺服器組態。cn=config 項目及其下所有項目都可利用<從指令行管理項目>中說明的程序與 LDIF 格式進行修改。

但是您必須了解這些項目的意義、其屬性的用途以及允許的值等。本文件的「從指令行...」程序中會解釋這些重要的注意事項,該程序會舉例說明您可以設定的組態項目與屬性。如需所有組態項目與屬性的完整描述,包括允許值的範圍,請參閱《Sun ONE Directory Server 參考手冊》。

因此,從主控台修改組態會比從指令行修改更加直覺式。但是,有少數組態設定無法透過主控台進行,因此只提供指令行程序。您也可以撰寫使用指令行工具的指令檔,利用指令行程序將組態工作自動化。

修改 dse.ldif 檔案

dse.ldif 檔案包含伺服器啟動或重新啟動時將讀取及使用的組態。這個檔案的 LDIF 內容是 cn=config 項目及其樹狀子目錄。只有安裝期間所定義的系統使用者可讀取這個檔案。

直接編輯這個檔案的內容來修改組態比較容易出錯,因此不建議這種作法。您應該知道下列運作方式:

  • 在啟動時只會讀取 dse.ldif 檔案一次。之後,伺服器組態就以組態項目在記憶體中的 LDAP 影像為準。因此,在啟動後所做的檔案修改將等到下一次重新啟動時才會生效。
  • 使用主控台或從指令行修改組態會變更組態的 LDAP 影像。有些目錄功能會在啟動時讀取目前的組態,因此不必重新啟動伺服器。
  • 每當組態的 LDAP 影像變更時,伺服器就會寫入 dse.ldif 檔案。有些目錄功能只在伺服器啟動時讀取其組態,而寫入檔案可確保變更會存在。
  • 現有的 dse.ldif 檔案會複製成為 dse.ldif.bak,並覆寫現有的 dse.ldif.bak。因此,如果在伺服器重新啟動之前透過 LDAP 變更組態,對 dse.ldif 檔案所做的任何手動變更將會消失不見。

  • 每次成功啟動目錄後,dse.ldif 檔案會複製成同一位置中的 dse.ldif.startOK。如果因為組態變更錯誤導致無法啟動伺服器,您必須從這個檔案還原 dse.ldif。

使用主控台管理項目

您可以用 Directory Server 主控台上的 [目錄] 標籤及項目編輯器對話方塊個別加入、修改或刪除項目。如果要同時操作幾個項目,請參閱<使用主控台執行大量作業>。

如需關於啟動 Directory Server 主控台與瀏覽使用者介面的詳細資訊,請參閱<使用 Directory Server Console>。

建立目錄項目

Directory Server 主控台提供數個可建立目錄項目的自訂範本。每個範本是特定類型之物件類別的自訂編輯器。表 2-1 顯示每個自訂編輯器所用的物件類別。

表 2-1    項目範本與對應的物件類別 

範本

物件類別

使用者

inetOrgPerson (用於建立與編輯)
organizationalPerson (用於編輯)
person (用於編輯)

群組

groupOfUniqueNames 及其他可能用於動態群組與憑證群組的物件類別

組織單位

organizationalUnit

角色

nsRoleDefinition 及其他 (依選擇受管理、篩選或巢狀角色而定)

服務類別

cosSuperDefinition 及其他 (依服務類別的類型而定)

密碼原則

passwordPolicy

轉介

referral

這些自訂編輯器所包含的欄位代表所有強制屬性,以及個別物件類別常用的部分選用屬性。若要用這些範本建立項目,請依照<使用自訂編輯器建立項目>中的說明進行。若要建立任何其他類型的項目,請參閱<建立其他類型的項目>。

使用自訂編輯器建立項目

  1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要作為新項目父項的項目。
  2. 以滑鼠右鍵按一下父項,選擇 [新增] 功能表項目,再從子功能表中選擇項目類型:使用者、群組、組織單位、角色、服務類別、密碼原則或轉介。或者,您可以在父項上按一下滑鼠左鍵以選擇父項,再從 [物件] > [新增] 功能表中選擇項目類型。出現您選擇之項目類型的自訂編輯器對話方塊。
  3. 自訂編輯器的左欄有一連串的標籤,每個標籤的欄位則顯示在右邊。依預設值,所有自訂編輯器開啟時會選擇最上層的 [使用者] 或 [一般] 標籤,上面包含新項目的名稱和說明欄位。

    例如,下圖顯示使用者項目的自訂編輯器:

圖 2-1    Directory Server Console - 使用者項目的自訂編輯器

  1. 在自訂編輯器的欄位中為您要提供的屬性輸入值。凡是欄位名稱旁有星號 (*) 的強制屬性都必須輸入值;其他欄位則可以保留空白。在允許多重值的欄位中,您可以按 Return 以分隔數值。
  2. 如需各項目類型的自訂編輯器中有關特定欄位進一步的協助,請按一下 [說明] 按鈕。如需 [使用者] 與 [組織單位] 編輯器上 [語言] 標籤的說明,請參閱<設定語言支援的屬性>。

    如需建立群組、角色及服務類別項目的進一步說明,請參閱第 5 章<進階項目管理>。如需建立密碼原則的說明,請參閱第 7 章<使用者帳戶管理>。如需建立轉介的說明,請參閱<設定轉介>。

  3. 按一下 [確定] 建立新的項目,並關閉自訂編輯器對話方塊,新項目出現在樹狀目錄中。
  4. 自訂編輯器對話方塊並不會為個別物件類別的所有選用屬性提供欄位。如果希望加入不顯示在自訂編輯器上的選用屬性,請依照<以標準編輯器修改項目>中的說明進行。

建立其他類型的項目

請依照以下步驟為任何不在表 2-1 中列出的物件類別建立項目。此程序也可用來建立目錄結構中已定義之任何自訂物件類別的項目:

  1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要作為新項目父項的項目。
  2. 以滑鼠右鍵按一下父項,再從子功能表中選擇 [新增] > [其他] 項目。或者,您可以在父項上按一下滑鼠左鍵以選擇父項,再選擇 [物件] > [新增] > [其他] 功能表項目。
  3. 出現 [新增物件] 對話方塊。

  4. 在 [新增物件] 對話方塊的物件類別清單中,選擇定義新項目的物件類別,再按一下 [確定]。
  5. 如果選擇列在表 2-1 中的物件類別,將顯示對應的自訂編輯器 (參閱<使用自訂編輯器建立項目>)。在其他情況中,則均顯示標準編輯器。

  6. 建立新項目時,標準編輯器中會為您選擇的物件類別中所有必要的屬性各提供一個欄位。所有必要屬性都必須輸入值。有些欄位有標準的預留位置值,例如 New,您應該用對您的項目有意義的值取代預留位置值。
  7. 若要定義所選物件類別允許的其他屬性,您必須明確加入。若要為選用屬性輸入值:
    1. 按一下 [加入屬性] 按鈕以顯示允許的屬性清單。
    2. 從 [加入屬性] 對話方塊中選擇一或多個屬性,再按一下 [確定]。
    3. 在標準編輯器中新屬性名稱旁輸入值。

    如需關於此對話方塊中其他控制項進一步的詳細資料,請參閱<以標準編輯器修改項目>。

  8. 依照預設,會選擇其中一個必要屬性作為命名屬性,該必要屬性會出現在標準編輯器中所顯示的項目 DN 中。若要變更命名屬性:
    1. 按一下 [變更] 按鈕以顯示 [變更命名屬性] 對話方塊。
    2. 在屬性表中,選擇要用在新項目 DN 中的一或多個屬性旁的核取方塊。
    3. 在 [變更命名屬性] 對話方塊中按一下 [確定]。標準編輯器中的 DN 就會以選取的命名屬性顯示新的 DN。

  9. 在標準編輯器中按一下 [確定],以儲存新項目。
  10. 新項目在樹狀目錄中顯示為父項的子項。

用自訂編輯器修改項目

對於列在表 2-1 中的物件類別,您可以選擇使用對應的自訂編輯器或標準編輯器來編輯項目。使用自訂編輯器,可以很容易地存取最常用的欄位,而且介面會幫助您為複雜的屬性 (例如角色或服務類別定義中的屬性) 定義值。

標準編輯器可讓您對項目執行比較進階的作業,例如加入物件類別、加入允許的屬性以及處理多重值屬性等。若要以標準編輯器編輯項目,請參閱<以標準編輯器修改項目>。



注意

自訂編輯器只可用來編輯列在表 2-1 中的物件類別。至於包含其他結構物件類別的項目 (例如從 inetorgperson 繼承得來的自訂類別),則只能透過標準編輯器進行編輯。

若項目除了列示的物件類別之外還包含輔助物件類別,則該項目可以用自訂編輯器進行管理。但自訂編輯器中不顯示輔助類別所定義的任何屬性。如需輔助物件類別的定義,請參閱《Sun ONE Directory Server 參考手冊》第 9 章的<物件類別>。



啟動自訂編輯器

若要編輯表 2-1 中所列物件類別的項目:

  1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要編輯的項目。
  2. 連按兩下項目。有幾個替代動作也可以啟動項目的自訂編輯器:
    • 以滑鼠右鍵按一下項目,再選擇 [以自訂編輯器編輯] 項目。
    • 以滑鼠左鍵按一下以選擇項目,再選擇 [物件] > [以自訂編輯器編輯] 功能表項目。
    • 以滑鼠左鍵按一下以選擇項目,再使用鍵盤快速鍵 Control-P。

    顯示項目的物件類別所使用的自訂編輯器。例如,圖 2-1 中顯示 [使用者] 項目的自訂編輯器。

  3. 依預設值,所有自訂編輯器開啟時會選擇最上層的 [使用者] 或 [一般] 標籤,上面包含新項目的名稱和說明欄位。針對您要修改的屬性,在自訂編輯器的欄位中編輯或移除值。欄位名稱旁以星號 (*) 標示的屬於強制屬性,您可以修改但無法移除這類屬性的值。其他欄位則可以保留空白。在允許多重值的欄位中,您可以按 Return 以分隔數值。
  4. 選取左欄中的其他標籤,以修改對應面板上的值。如需各項目類型的自訂編輯器中有關特定欄位進一步的協助,請按一下 [說明] 按鈕。

    如需 [使用者] 與 [組織單位] 編輯器上 [語言] 標籤的說明,請參閱<設定語言支援的屬性>。使用者與群組項目的 [帳戶] 標籤上各個欄位將於第 7 章<使用者帳戶管理>中說明。[NT 使用者] 與 [Posix 使用者] 標籤是為所提供,如需詳細資料,請洽詢 Sun 代表。

    如需修改群組、角色與服務類別項目進一步的說明,請參閱第 5 章<進階項目管理>;如需修改密碼原則的說明,請參閱第 7 章<使用者帳戶管理>;如需修改轉介的說明,請參閱<設定轉介>。

  5. 按一下 [確定] 儲存項目的變更,並關閉自訂編輯器對話方塊。如果修改了命名屬性 (例如使用者項目的一般名稱),樹狀目錄中將反映該變更。

設定語言支援的屬性

使用者與組織單位項目的自訂編輯器都提供國際化目錄的語言支援。

  1. 依<啟動自訂編輯器>所述開啟您的項目的自訂編輯器。
  2. 按一下左欄中的 [語言] 標籤。
  3. 對於使用者項目,您可以用下拉式清單設定慣用的語言。
  4. 對於使用者與組織單位項目,您可以在清單顯示的任何語言的指定欄位中輸入當地語系化的值。選擇語言,然後以該語言輸入一或多個值。定義當地語系化值之後,清單中的語言名稱會以粗體顯示。
  5. 某些語言也有拼音欄位,您可以在其中輸入當地語系化值的發音表示法。

  6. 按一下 [確定] 儲存項目的變更,並關閉自訂編輯器對話方塊。

以標準編輯器修改項目

標準編輯器可根據登入主控台所用的連結 DN,允許您查看項目的所有可讀取屬性,及編輯可寫入屬性。它可讓您加入及移除屬性、設定多重值屬性以及管理項目的物件類別。加入屬性時,您可以定義二進位屬性與語言支援的子類別。

啟動標準編輯器

若要為目錄中的任何項目啟動標準編輯器:

  1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要編輯的項目。
  2. 以滑鼠右鍵按一下項目,再選擇 [以標準編輯器編輯] 項目。有幾個替代動作也可以啟動項目的自訂編輯器:
    • 以滑鼠左鍵按一下以選擇項目,再選擇 [物件] > [用標準編輯器編輯] 功能表項目。
    • 如果項目不列在表 2-1 中,則連按兩下項目。依預設值,沒有自訂編輯器的物件類別會使用標準編輯器。

    顯示如下圖所示的標準編輯器。

圖 2-2    Directory Server Console - 標準編輯器

在標準編輯器中,項目的屬性依字母順序排列,而且每個屬性值均各有一個文字方塊。所有屬性,包括唯讀與作業屬性都會顯示出來。右邊的控制項可讓您修改編輯器中的顯示,以及編輯屬性清單。

  • 或者,您可以用 [檢視] 方塊中的控制項修改標準編輯器的顯示:
    • 選擇 [顯示屬性名稱] 選項以檢視屬性最初在結構中定義的名稱。屬性清單將重新排列,以依名稱字母順序排列。
    • 選擇 [顯示屬性描述] 選項將屬性依替代名稱排列 (如果曾在結構中定義替代名稱)。替代名稱通常可以更清楚地描述屬性。屬性清單將重新排列,以依照描述字母順序排列。
    • 取消選取 [僅顯示含值的屬性] 核取方塊可列出項目的物件類別中由結構明確允許的所有屬性。如果項目包含 extensibleObject 物件類別,所有屬性都是隱含允許的,但不會列出來。預設狀況下只顯示有定義值的屬性。
    • 選擇或取消選取 [顯示 DN] 核取方塊,以切換是否在屬性清單下顯示項目的辨別名稱。
    • [重新整理] 按鈕將存取伺服器,以根據項目目前的內容更新所有屬性的值。


    • 小心

      按一下 [重新整理] 按鈕將立即移除您在標準編輯器中所做的任何修改,不會儲存起來。



    下列各節描述設定屬性值、管理物件類別及變更項目命名屬性的控制方式。

    修改屬性值

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並按一下要修改的值。
    3. 選取的屬性會反白顯示,而且在包含選取值的文字欄位內會出現編輯游標。

    4. 使用滑鼠與鍵盤將文字編輯成所要的值。您可以用系統剪貼簿在此欄位中複製、剪下及貼上文字。
    5. 如果無法編輯文字欄位的內容,表示屬性是唯讀的,或您沒有修改屬性的寫入權限。

    6. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    編輯多重值屬性

    若屬性在目錄結構中定義為多重值,則該屬性在標準編輯器中可以有多個欄位。如需詳細資訊,請參閱第 9 章<延伸目錄結構>。

    若要為多重值屬性加入新值:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並按一下屬性或其中一個值。選取的屬性會反白顯示,並啟動 [加入值] 按鈕。如果未啟動此按鈕,表示選取的屬性不是定義為多重值,或屬性是唯讀的,或是您沒有修改屬性的寫入權限。
    3. 按一下 [加入值] 按鈕。清單中屬性名稱旁出現新的空白文字欄位。
    4. 在新的文字欄位中輸入此屬性的新值。您可以用系統剪貼簿在此欄位中複製、剪下及貼上文字。
    5. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    若要移除多重值屬性的值:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並按一下要移除的特定值。選取的屬性會反白顯示,並啟動 [刪除值] 按鈕。如果未啟動此按鈕,表示選取的屬性是唯讀的,或您沒有修改屬性的寫入權限。
    3. 按一下 [刪除值] 按鈕。就會移除包含選取值的文字欄位。
    4. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    加入屬性

    在您可將屬性加入項目中之前,該項目必須已經包含需要或允許屬性的物件類別。如需詳細資訊,請參閱<管理物件類別>與第 9 章<延伸目錄結構>。

    若要將屬性加入項目中:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 確定已核取 [僅顯示含值的屬性] 選項。
    3. 按一下 [加入屬性] 按鈕以顯示包含屬性清單的對話方塊。此清單只包含針對項目所定義之物件類別允許的屬性。
    4. 在 [加入屬性] 對話方塊中選擇要加入的一或多個屬性。
    5. 或者,您可以從對話方塊上方的下拉式清單中選擇下列兩個子類型或其中之一:
      • [語言] 子類型 ─ 此子類型可用來指出屬性值所用的語言。您可以用不同語言將屬性加入許多次,以在目錄中儲存當地語系化資訊。
      • 或者,您可以在語言之外再選擇 [拼音] 子類型以表示此屬性的值包含指定語言中數值的對等發音。

      • [二進位] 子類型 ─ 為屬性指定二進位子類型表示屬性值為二進位資料。雖然您不需要二進位子類型就可在屬性中儲存二進位資料,但它會對用戶端指出該屬性類型可能存在多種變化。

    6. 選擇屬性及其選用子類型後按一下 [確定]。屬性會依字母順序加入標準編輯器的清單中。
    7. 在新屬性名稱旁的空白文字欄位中輸入此屬性的新值。您可以用系統剪貼簿在此欄位中複製、剪下及貼上文字。
    8. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    移除屬性

    若要從項目中移除屬性及其所有值:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並按一下要移除的屬性名稱。選取的屬性會反白顯示,並啟動 [刪除屬性] 按鈕。如果未啟動此按鈕,表示選取的屬性是唯讀的,或您沒有修改屬性的寫入權限。


    3. 注意

      標準編輯器允許您移除可為此屬性定義之物件類別所需的屬性。如果嘗試儲存沒有必要物件類別的項目,伺服器將回應物件類別違規。請確認您的項目包含它定義之所有物件類別的必要屬性。



    4. 按一下 [刪除屬性] 按鈕。就會移除屬性及其所有文字欄位值。
    5. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    管理物件類別

    項目的物件類別是由多重值的 objectclass 屬性所定義。修改此屬性時,標準編輯器會提供特殊的對話方塊,幫助您管理定義的物件類別。

    若要為項目加入物件類別:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並選擇 objectclass 屬性。就會啟動 [加入值] 按鈕。如果未啟動此按鈕,表示您沒有權限,無法修改此項目的物件類別。
    3. 按一下 [加入值] 按鈕。
    4. 出現 [加入物件類別] 對話方塊。此視窗顯示您可加入項目中的物件類別清單。

    5. 請選擇您想要加入此項目中的一或多個物件類別,再按一下 [確定]。您所選取的物件類別即顯示在 objectclass 屬性值清單中。
    6. 如果新物件類別擁有還不存在項目中的必要屬性,標準編輯器將自動幫您加入。您必須為所有必要屬性提供值。
    7. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    若要從項目中移除物件類別:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. 捲動屬性清單,並按一下要移除之 objectclass 屬性的特定值。如果結構允許移除選取的物件類別,而且您有權限可修改此項目的物件類別,就會啟動 [刪除值] 按鈕。
    3. 按一下 [刪除值] 按鈕。就會移除特定的物件類別。
    4. 當您移除物件類別時,標準編輯器將自動移除其餘物件類別不允許或必要的任何屬性。如果移除命名屬性之一,將自動選擇另一個命名屬性,而且主控台將通知您確認此變更。

    5. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    重新命名項目

    命名屬性是出現在項目辨別名稱 (DN) 中的屬性值配對。命名屬性是從項目現有的屬性中選擇而來。修改命名屬性即可重新命名項目:

    1. 依<啟動標準編輯器>所述開啟標準編輯器。
    2. [變更] 按鈕旁的文字會顯示此項目目前的命名屬性。如果選擇 [顯示 DN] 核取方塊,您可以在屬性值清單下看到 DN 中的這些屬性。

    3. 按一下 [變更] 按鈕。如果未啟動此按鈕,表示您沒有權限,無法重新命名此項目。
    4. 出現 [變更命名屬性] 對話方塊。

    5. 捲動屬性清單,選擇要放在此項目的 DN 中的屬性。選擇或取消選取屬性旁的核取方塊,以分別在命名屬性中加入或移除屬性。
    6. 在同一父項下各項目的 DN 必須是唯一的。因此,您必須選擇其值或數值組合是唯一的命名屬性。如果 DN 不是唯一的,伺服器將拒絕儲存其項目。在慣例上,代表使用者的所有項目應使用相同的命名屬性。

    7. 在 [變更命名屬性] 對話方塊中按一下 [確定]。標準對話方塊中的顯示會顯示此項目的新 DN。
    8. 編輯其他任何值,或依需要對此項目執行其他修改,再按一下 [確定] 儲存變更,並關閉標準編輯器。

    刪除目錄項目

    若要使用 Directory Server 主控台來刪除項目:

    1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要移除的項目。
    2. 您也可以選擇樹狀子目錄的根節點,以刪除目錄的整個分支。

    3. 以滑鼠右鍵按一下項目,再選擇 [刪除] 項目。數個替代動作也會刪除項目:
      • 以滑鼠左鍵按一下以選擇項目,再選擇 [編輯] > [刪除] 功能表項目。如果要將此項目貼到目錄的其他位置,您也可以使用 [編輯] > [剪下] 功能表項目。
      • 以滑鼠左鍵按一下以選擇項目,再使用鍵盤快速鍵 Control-D。

      當您選擇 [檢視] > [佈局] 選項以在 Directory Server 主控台右面板中顯示子項後,您可以用 Control+按一下或 Shift+按一下的按鍵組合選擇多個要刪除的項目。

    4. 確認您要刪除項目,或樹狀子目錄及其所有內容。
    5. 伺服器可立即刪除一或多個項目。沒有復原。如果刪除多個項目,主控台將顯示資訊對話方塊,列出刪除項目數及發生的任何錯誤。

    使用主控台執行大量作業

    您可以用 LDIF 檔案加入多個項目、執行混合作業或匯入整個尾碼。若要使用 LDIF 檔案及 Directory Server 主控台來加入項目:

    1. 用以上各節所顯示的語法在 LDIF 檔案中定義項目或作業。如果只要加入項目或初始化尾碼,就不需要 changetype 關鍵字,而且 LDIF 檔案可以只包含項目。如果要執行混合的作業,每個 DN 其後都應該跟著一個 changetype,而且視需要加上特定作業或屬性值。
    2. 從 Directory Server 主控台匯入 LDIF 檔案。如需更多資訊,請參閱<匯入 LDIF 檔案>。
    3. 如果要執行混合的作業,務必取消選取 [匯入 LDIF] 對話方塊上的 [僅加入],讓伺服器會執行所有 LDIF 作業。

    從指令行管理項目

    ldapmodify 和 ldapdelete 指令行公用程式提供加入、編輯與刪除目錄項目的完整功能。您可以用它們管理伺服器的組態項目和使用者項目中的資料。這兩個公用程式也可用來撰寫指令檔,以執行一或多個目錄的大量管理工作。

    ldapmodify 和 ldapdelete 指令用在本書各處的程序中。下列各節描述執行這些管理程序所需的所有基本作業。更進一步的功能、所有的指令行選項及這些指令的傳回值說明於《Sun ONE Directory Server Resource Kit 工具參考》中的第 4 章< ldapmodify >和第 5 章< ldapdelete >。

    指令行公用程式的輸入一定採用 LDAP 資料交換格式 (LDIF),您可以直接從指令行輸入,或透過輸入檔提供。LDIF 是項目、屬性及其值的文字表示方式。LDIF 是 RFC 2849 (http://www.ietf.org/rfc/rfc2849.txt) 所述的標準格式。下節提供有關 LDIF 輸入的資訊,隨後各節描述每種修改類型的 LDIF。

    提供 LDIF 輸入

    為指令行公用程式提供 LDIF 輸入時,針對指令行輸入、特殊字元、結構檢查及項目的順序與大小等,有一些特殊注意事項必須記住。

    在指令行中止 LDIF 輸入

    ldapmodify 和 ldapdelete 公用程式讀取您在指令後輸入的 LDIF 陳述式跟從檔案讀取是完全一樣的方式。當您完成提供輸入時,請輸入自己的 Shell 會辨識為檔案結束 (end of file,EOF) 逸出順序的字元。

    一般而言,依作業系統的不同,EOF 逸出順序會是以下各項之一:

    • UNIX - 幾乎總是 Control-D (^D)。
    • Windows - 通常是 Control-Z 其後跟著換行字元 (^Z<Return>)。

    以下範例顯示如何在 UNIX 系統上中止 ldapmodify 指令的輸入:

    prompt> ldapmodify -h host -p port -D bindDN -w password
    dn:cn=Barry Nixon,ou=People,dc=example,dc=com
    changetype:modify
    delete:telephonenumber
    ^D
    prompt>

    為了簡化及可攜性,本文件中的範例不顯示提示或 EOF 順序。

    使用特殊字元

    在指令行輸入指令選項時,您可能必須忽略一些對指令行解譯器具有特殊意義的字元,如空格 ( )、星號 (*)、反斜線 (\) 等。例如,許多 DN 包含空格,要用在大部分 UNIX Shell 中,您必須將值置於雙引號 ("") 內:

    -D "cn=Barbara Jensen,ou=Product Development,dc=example,dc=com"

    依指令行解譯器而定,您應該使用單引號或雙引號做此用途。如需更多資訊,請參閱您的作業系統文件。

    此外,如果您使用包含逗號的 DN,必須以反斜線 (\) 忽略逗號。例如:

    -D "cn=Patricia Fuentes,ou=People,o=example.com Bolivia\,S.A."

    請注意,ldapmodify 指令後的 LDIF 陳述式是由指令解譯,而非由 Shell 解譯,因此不需要特殊的注意事項。

    結構檢查

    加入或修改項目時,所使用的屬性必須是項目中的物件類別必要或允許的屬性,而且您的屬性必須包含與定義語法相符的值。

    修改項目時,Directory Server 會在整個項目上執行結構檢查,而不僅在被修改的屬性上進行檢查。因此,如果項目中的任何物件類別或屬性不符合結構,作業都可能會失敗。如需詳細資訊,請參閱<結構檢查>。

    排列 LDIF 項目的順序

    在加入項目的任何 LDIF 文字順序中,不論是在指令行或在檔案中,父項都必須列在子項前。如此一來,當伺服器處理 LDIF 文字時,就會先建立父項再建立子項。

    例如,如果要在 People 樹狀子目錄中建立不存在目錄中的項目,必須先列出代表 People 容器的項目,再列出樹狀子目錄中的項目:

    dn:dc=example,dc=com
    dn:ou=People,dc=example,dc=com
    ...
    People subtree entries
    ...
    dn:ou=Group,dc=example,dc=com
    ...
    Group subtree entries
    ...

    您可以使用 ldapmodify 指令行公用程式建立目錄中的任何項目,但是尾碼或子尾碼的根部是特殊項目,必須與必要的組態項目產生關聯。若要加入新的根尾碼或子尾碼及其相關的組態項目,請參閱<從指令行建立尾碼>。

    管理大型項目

    加入或修改含有極大型屬性值的項目前,伺服器可能必須經過設定才能接受這類項目。為保護伺服器以防負載過重,用戶端預設為僅能傳送不超過 2 MB 的資料。

    如果加入的項目大於此限制,或修改的屬性值大於此限制,伺服器將拒絕執行作業,並立即關閉連線。例如,在項目的一或多個屬性中如果有多媒體內容等二進位資料,就可能超過此限制。

    而且,定義大型靜態群組的項目可能包含太多成員,以致於其表示法超過限制。但基於效能的原因,並不建議使用這樣的群組,您應該考慮重新設計目錄結構。如需更多資訊,請參閱<管理群組>。

    若要修改伺服器對用戶端傳送的資料強制的大小限制:

    1. 為 cn=config 項目的 nsslapd-maxbersize 屬性設定新值。
    2. 若要使用主控台執行此動作,請以管理員或目錄管理員的身份登入,並根據<以標準編輯器修改項目>中的程序編輯 cn=config 項目。將 nsslapd-maxbersize 屬性設為用戶端可一次傳送的最大位元數。
    3. 若要從指令行執行此動作,請使用下列指令:
    4. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
      dn:cn=config
      changetype:modify
      replace:nsslapd-maxbersize
      nsslapd-maxbersize:sizeLimitInBytes

      如需詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 4 章的<nsslapd-maxbersize>。

    5. 依<啟動和停止目錄伺服器> 所述重新啟動伺服器。

    錯誤處理

    指令行工具會循序處理 LDIF 輸入中的所有項目或修改。當第一個錯誤發生時,預設的運作方式是會停止處理。使用 -c 選項可不理會任何錯誤繼續處理所有輸入。您會在工具的輸出中看到錯誤狀況。

    除了上述注意事項之外,常見的錯誤包括:

    • 沒有適當的作業存取權限。
    • 用已存在目錄中 DN 加入項目。
    • 於不存在的父項下加入項目。

    如需關於錯誤狀況及迴避方式的詳細資訊,請參閱《Sun ONE Directory Server Resource Kit 工具參考》中的第 4 章< ldapmodify >和第 5 章< ldapdelete >。

    使用 ldapmodify 加入項目

    您可以用 ldapmodify 的 -a 選項在目錄中加入一或多個項目。下列範例建立一個結構項目以包含使用者,然後再建立使用者項目:

    ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
    dn:ou=People,dc=example,dc=com
    objectclass:top
    objectclass:organizationalUnit
    ou:People
    description:Container for user entries

    dn:uid=bjensen,ou=People,dc=example,dc=com
    objectclass:top
    objectclass:person
    objectclass:organizationalPerson
    objectclass:inetorgPerson
    uid:bjensen
    givenName:Barbara
    sn:Jensen
    cn:Babs Jensen
    telephoneNumber: (408) 555-3922
    facsimileTelephoneNumber: (408) 555-4000
    mail:bjensen@example.com
    userPassword:clearPassword

    -D 和 -w 選項分別指定有權建立這些項目之使用者的連結 DN 和密碼。-a 選項包含 LDIF 中即將加入的所有項目。然後以 DN 及屬性值指定每個項目,項目之間使用一個空白行。ldapmodify 公用程式會在輸入後建立每個項目,並報告任何錯誤。

    在慣例上,項目的 LDIF 以下列順序列出屬性:

    • 物件類別清單。
    • 命名屬性或屬性。這是 DN 中所用的屬性,不一定要是必要屬性。
    • 所有物件類別的必要屬性清單。
    • 任何希望包含的允許屬性。

    輸入 userpassword 屬性的值時,請指定純文字版的密碼。伺服器會將這個值加密,並且只儲存加密的值。請務必要限制讀取權限,以保護 LDIF 檔案中的純文字密碼。

    您也可以在指令行上使用不需要 -a 選項的 LDIF 替代格式。這種格式的優點是您可以將加入項目及修改項目的陳述式結合在一起,如下一節所示。

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:ou=People,dc=example,dc=com
    changetype:add
    objectclass:top
    objectclass:organizationalUnit
    ou:People
    description:Container for user entries

    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:add
    objectclass:top
    objectclass:person
    objectclass:organizationalPerson
    objectclass:inetorgPerson
    uid:bjensen
    givenName:Barbara
    sn:Jensen
    cn:Barbara Jensen
    telephoneNumber: (408) 555-3922
    facsimileTelephoneNumber: (408) 555-4000
    mail:bjensen@example.com
    userPassword:clearPassword

    changetype:add 關鍵字指出應以後續的所有屬性建立指定 DN 的項目。所有其他選項和 LDIF 慣例都一樣。

    在兩個範例中,您都可以用 -f filename 選項從檔案讀取 LDIF,而不從終端機輸入讀取。LDIF 檔案包含的格式必須跟使用 -a 選項時的終端機輸入格式相同。

    使用 ldapmodify 修改項目

    使用 changetype:modify 關鍵可加入、取代或移除現有項目中的屬性及其值。當您指定 changetype:modify 時,您也必須提供一或多個變更作業,以指出項目的修改方式。以下範例顯示三個可能的 LDIF 變更作業:

    dn:entryDN
    changetype:modify
    add:attribute
    attribute
    :value
    ...
    -
    replace:attribute
    attribute
    :newValue
    ...
    -
    delete:attribute
    [attribute:value]
    ...

    在行中使用破折號 (-) 可分隔對同一項目的作業,空白行可分隔不同項目的作業群組。您也可以為每個作業指定數個 attribute:value 配對,將它們同時加入、取代或刪除。

    加入屬性值

    以下範例顯示如何使用相同的 add LDIF 語法,為現有的多重值屬性及尚不存在的屬性加入值:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    add:cn
    cn:Babs Jensen
    -
    add:mobile
    mobile: (408) 555-7844
    mobile: (408) 555-7845

    若有下列狀況,此作業可能會失敗,而且伺服器將傳回錯誤:

    • 屬性已存在指定的值。
    • 值未依照屬性所定義的語法。
    • 屬性類型不是項目的物件類別所需要或允許的。
    • 屬性類型不是多重值,而且已經存在值。

    加入二進位屬性值

    二進位屬性值以 attribute;binary 子類型標示。雖然這個子類型不是必要的,但它有助於使用者和用戶端判斷屬性的內容。您可以在 ldapmodify 指令所用的任何 LDIF 陳述式中為屬性名稱加入適當的子類型。

    若要輸入二進位值,您可以直接在 LDIF 文字中輸入,或從另一個檔案中讀取。以下範例顯示從檔案讀取的 LDIF 語法:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    version: 1
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    add:jpegphoto;binary
    jpegphoto;binary:< file:///path/filename.jpg

    在 < 前後的空格是有意義的,必須完全依照顯示方式使用。為了使用 < 語法指定檔案名稱,LDIF 陳述式的開頭行必須是 version:1。當 ldapmodify 處理此陳述式時,它會將屬性設為從指定檔案的完整內容讀取而來的值。

    加入有語言子類型的屬性

    屬性的語言與拼音子類型用於指定當地語系化的值。當您為屬性指定語言子類型時,該子類型會以下列方式加入屬性名稱:

    attribute;lang-CC

    其中 attribute 是現有的屬性類型,CC 是兩個字母的國碼,以指定語言。您可以選擇為語言子類型加入拼音子類型,以指定當地語系化值的對等發音。在此況狀下,屬性名稱變成:

    attribute;lang-CC;phonetic

    若要在含子類型的屬性上執行作業,您必須明確配合其子類型。例如,如果要修改含 lang-fr 語言子類型的屬性值,您必須以下列方式在修改作業中包含 lang-fr:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    replace:homePostalAddress;lang-fr
    homePostalAddress;lang-fr:34\, avenue des Champs-Elys�es

    修改屬性值

    以下範例顯示如何使用 LDIF 中的 replace 語法修改單值屬性和多重值屬性的所有值:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    replace:sn
    sn:Morris
    -
    replace:cn
    cn:Barbara Morris
    cn:Babs Morris

    使用 replace 語法時,將移除指定屬性目前所有的值,並加入所有指定值。

    刪除屬性值

    以下範例顯示如何完全刪除屬性,以及只刪除多重值屬性中的一個值:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    delete:facsimileTelephoneNumber
    -
    delete:cn
    cn:Babs Morris

    使用 delete 語法卻不指定 attribute:value 配對時,將移除屬性的所有值。如果指定 attribute:value 配對,則只會移除該值。

    修改多重值屬性的一個值

    為了用 ldapmodify 指令修改多重值屬性的一個值,您必須依下列範例所示執行兩個作業:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modify
    delete:mobile
    mobile: (408) 555-7845
    -
    add:mobile
    mobile: (408) 555-5487

    使用 ldapmodify 重新命名項目

    重新命名項目,就是修改它的相對辨別名稱 (RDN),這是項目 DN 中最左邊的 attribute=value 配對。此屬性稱為命名屬性,而且在項目的各屬性之間它也必須以相同的值存在。

    重新命名項目時,您無法變更 DN 的其他任何部分,而導致項目移到不同的樹狀子目錄。若要將項目完全移到不同的分支,您必須用舊項目的屬性在其他樹狀子目錄中建立新項目,再刪除舊項目。

    而且,您無法重新命名有任何子項的項目,這是因為父項的 RDN 用在其子項的 DN 中,而 DN 中的所有項目都必須存在所致。若要移動整個樹狀目錄,您必須在新位置重新建立該樹狀目錄。

    使用 changetype:modrdn 關鍵字可用 LDIF 陳述式重新命名項目。以下範例將重新命名 Barbara Morris 的 uid 命名屬性:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:modrdn
    newrdn:uid=bmorris
    deleteoldrdn: 1

    newrdn 行用 attribute=value 語法指定新的命名屬性。deleteoldrdn 行指示是否應同時將原本的命名屬性從項目中移除 (1 代表是,0 代表否)。不論任一種狀況,新的命名屬性也都會加入項目。

    使用 ldapdelete 刪除項目

    使用 ldapdelete 指令行公用程式可從目錄中刪除項目。此公用程式會連結到目錄伺服器,並刪除 DN 所指定的一或多個項目。您必須提供有權刪除指定項目的連結 DN。

    就如同父項不能重新命名一樣的道理,您也不能刪除有子項的項目。LDAP 通訊協定禁止子項不再有父項存在的狀況發生。例如,您無法刪除組織單位項目,除非先刪除屬於該組織單位的所有項目。



    小心

    請勿刪除尾碼 o=NetscapeRoot。Sun ONE Administration Server 使用此尾碼儲存已安裝 Sun ONE 伺服器的相關資訊。刪除此尾碼可能會強迫您重新安裝包括目錄伺服器在內的所有 Sun ONE 伺服器。



    在下列範例中,組織單位中只有一個項目,所以我們刪除該項目,再刪除父項:

    ldapdelete -h host -p port -D "cn=Directory Manager" -w password
    uid=bjensen,ou=People,dc=example,dc=com
    ou=People,dc=example,dc=com

    使用 ldapmodify 刪除項目

    您也可以使用 ldapmodify 公用程式的 changetype:delete 關鍵字刪除項目。凡是以上所述使用 ldapdelete 時的限制,在這�埵P樣適用。使用 LDIF 語法刪除項目的優點是您可以在一個 LDIF 檔案中執行混合的作業。

    以下範例將執行與先前範例相同的刪除作業:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:delete

    dn:ou=People,dc=example,dc=com
    changetype:delete

    設定轉介

    您可以使用轉介告訴用戶端應用程式在本機無法取得資訊時應聯絡哪部伺服器。轉介是指到遠端尾碼或項目的指標,Directory Server 會將此指標傳回給用戶端,而不傳回結果。接下來,用戶端必須重新於轉介中指定的遠端伺服器上執行作業。在三種狀況下會發生此重新導向作業:

    • 當用戶端應用程式要求不存在本機伺服器的項目時,伺服器傳回預設轉介。
    • 當整個尾碼為了進行維護,或基於安全性的原因而設為離線狀態時,伺服器將傳回該尾碼定義的轉介。尾碼層級的轉介說明於<設定存取權限及轉介> 中。當用戶端要求寫入作業時,尾碼的唯讀複本也會傳回主機伺服器的轉介。
    • 您可以建立稱為智慧型轉介的項目。當用戶端明確存取智慧型轉介時,伺服器將改為傳回它所定義的轉介。Directory Server 主控台 會自動追蹤智慧型轉介,使它們就像是最上層 [目錄] 標籤上的本機項目一樣。

    不論是哪一種狀況,一個轉介就是一個 LDAP URL,其中包含另一部伺服器的主機名稱、連接埠號碼及選用的 DN。如需詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》中的附錄 D< LDAP URL >。如需關於如何在目錄部署中使用轉介的概論,請參閱《Sun ONE Directory Server 部署指南》。

    下列各節描述定義目錄的預設轉介及定義智慧型轉介的程序。

    設定預設轉介

    當用戶端應用程式在 DN 上所提交的作業不包含在目錄所維護的任何尾碼內時,便會將預設轉介傳回給該用戶端應用程式。預設轉介有時候稱為全域轉介,因為它們適用於目錄中的所有尾碼。伺服器將傳回定義的所有尾碼,但傳回的順序則未定義。

    使用主控台設定預設轉介

    1. 在 Directory Server 主控台最上層的 [組態] 標籤上,選擇位於組態樹狀目錄根部的伺服器節點,再選擇右面板中的 [網路] 標籤。
    2. 選擇 [傳回轉介] 核取方塊,並在文字欄位中輸入 LDAP URL。或者,按一下 [建構 URL],在指引下完成 LDAP URL 的定義。指到安全連接埠的 LDAP URL 範例如下:
    3. ldaps://east.example.com:636/dc=example,dc=com

      您可以用空格與引號分隔,輸入多個轉介 URL,如下:

      "ldap://east.example.com:389/" "ldap://backup.example.com:389/"

    4. 按一下 [儲存] 讓變更立即生效。

    從指令行設定預設轉介

    使用 ldapmodify 指令行公用程式可在目錄組態檔的 cn=config 項目中加入或取代一或多個預設轉介。例如:

    ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=config
    changetype:modify
    replace:nsslapd-referral
    nsslapd-referral:ldap://east.example.com:389/
    nsslapd-referral:ldap://backup.example.com:389/

    您不必重新啟動伺服器。

    建立智慧型轉介

    智慧型轉介可讓您將目錄項目或樹狀目錄對應到特定 LDAP URL。使用智慧型轉介,您可以將用戶端應用程式指到特定伺服器,或特定伺服器上的特定項目。

    通常,智慧型轉介會指到另一部伺服器上有相同 DN 的實際項目。但是您可以定義智慧型轉介,指到同一伺服器或不同伺服器上的任何項目。例如,您可以用下列 DN 定義項目:

    uid=bjensen,ou=People,dc=example,dc=com

    做為智慧型轉介,指到 east.example.com 伺服器上的另一個項目:

    cn=Babs Jensen,ou=Sales,o=east,dc=example,dc=com

    目錄使用智慧型轉介的方式符合 RFC 2251 (http://www.ietf.org/rfc/rfc2251.txt) 的 4.1.11 節中指定的標準。

    使用主控台建立智慧型轉介

    1. 在 Directory Server 主控台最上層的 [目錄] 標籤上,展開樹狀目錄,以顯示要做為智慧型轉介父項的項目。
    2. 以滑鼠右鍵按一下父項,選擇 [新增] > [轉介] 功能表項目。或者,您可以在父項上按一下滑鼠左鍵以選擇父項,再選擇 [物件] > [新增] > [轉介] 功能表項目。出現轉介項目的自訂編輯器對話方塊。
    3. 出現轉介的自訂編輯器。

    4. 在編輯器的 [一般] 標籤上,輸入轉介的名稱,並從下拉式清單中選擇其命名屬性。名稱將是您選擇的命名屬性的值。或者,您可以為此轉介輸入描述字串。
    5. 在編輯器的 [URL] 標籤上,按一下 [建構] 按鈕以定義智慧型轉介的 URL。在出現的對話方塊中輸入 LDAP URL 的元素。
    6. URL 的元素包括儲存轉介項目之目錄伺服器的主機名稱和 LDAP 連接埠號碼,以及伺服器上目標項目的 DN。依預設值,目標 DN 與智慧型轉介項目的 DN 相同。但是目標 DN 可以是任何尾碼、樹狀子目錄或分葉項目。

    7. 在 LDAP URL 建構對話方塊中,按一下 [確定]。URL 就顯示在新轉介文字方塊中。
    8. 按一下新轉介文字方塊旁的 [加入],將轉介加入清單。
    9. 您可以定義多個 URL,做為此項目傳回的轉介。使用 [建構]、[加入]、[刪除] 與 [變更] 按鈕可建立與管理 [轉介清單]。
    10. 按一下 [轉介驗證] 按鈕可顯示對話方塊,您可以在其中設定 Directory Server 主控台 在追蹤轉介到遠端伺服器時將用來連結的認證。您可以定義存取伺服器時將使用的連結 DN 與密碼。指向同一伺服器的所有轉介都將使用相同的認證。
    11. 使用 [加入]、[編輯] 與 [刪除] 按鈕可管理伺服器與對應認證清單。完成時按一下 [確定]。
    12. 在轉介的自訂編輯器中,按一下 [儲存] 儲存您的智慧型轉介項目。
    13. 在主控台的樹狀目錄中,您應該看到目標樹狀子目錄或項目取代智慧型轉介項目。如果智慧型轉介項目有黃色警告圖示,表示 URL 或認證無效。請連按兩下項目,等看到 [轉介錯誤] 時按一下 [繼續],並修改 [URL] 或 [轉介驗證] 以修正錯誤。

    從指令行建立智慧型轉介

    若要建立智慧型轉介,請用 referral 與 extensibleObject 物件類別建立項目。referral 物件類別允許 ref 屬性,此屬性應該要包含 LDAP URL。extensibleObject 物件類別可讓您使用任何結構屬性做為命名屬性,以便能夠對應到目標項目。

    例如,定義下列項目傳回智慧型轉介,而不傳回 uid=bjensen 項目:

    ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    objectclass:top
    objectclass:extensibleObject
    objectclass:referral
    uid:bjensen
    ref:ldap://east.example.com/cn=Babs%20Jensen,ou=Sales,
     o=east,dc=example,dc=com



    注意

    伺服器會忽略 LDAP URL 中空格之後的任何資訊。因此在預計作為轉介的任何 LDAP URL 中,您必須改用 %20,而不是使用空格。



    定義智慧型轉介後,對 uid=bjensen 項目的修改實際上會在其他伺服器的 cn=Babs Jensen 項目上執行。ldapmodify 指令將自動追蹤轉介,例如:

    ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:replace
    replace:telephoneNumber
    telephoneNumber: (408) 555-1234

    為了修改智慧型轉介,您必須使用 ldapmodify 的 -M 選項,例如:

    ldapmodify -M -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=bjensen,ou=People,dc=example,dc=com
    changetype:replace
    replace:ref
    ref:ldap://east.example.com/cn=Babs%20Jensen,ou=Marketing,
     o=east,dc=example,dc=com

    加密屬性值

    屬性加密為 Sun ONE Directory Server 5.2 的新功能,可保護儲存在目錄期間的敏感性資料。屬性加密允許您指定以加密格式儲存之項目的特定屬性。這可防止資料於儲存在資料庫檔案、備份資料以及匯出的 LDIF 檔案時被讀取。

    屬性值可利用此項功能,在將其儲存於 Directory Server 前,先行加密,以及在清除作業中傳回前再行解密。您應該使用其他例如 ACI 機制來防止 LDAP 用戶端存取禁止的資料,以及使用 SSL 來加密通訊。如需一般資料安全性與特殊屬性加密的結構式概論,請參閱《Sun ONE Directory Server 部署指南》中的第 7 章<設計安全目錄>。

    只有在伺服器上設定並啟用 SSL 後,才會啟用屬性加密。不過,依據預設並不會加密任何屬性。系統會在尾碼層級中設定屬性加密。這是指將出現在每一個項目之尾碼的屬性加密。如果您想要將整個目錄中的某個屬性加密,必須啟用每一個尾碼中此屬性的加密。



    小心

    屬性加密會影響與尾碼相關的所有的資料及索引檔。如果修改現有尾碼的加密組態,您必須首先匯出其內容,變更組態,然後再重新匯入內容。主控台將幫助您執行這些步驟。

    此外,在開啟加密時,您必須手動刪除可能仍舊包含未加密值的資料庫快取檔案。

    您應該在新尾碼中載入或建立資料前,先啟用所有加密的屬性。



    如果您選擇加密的屬性若會將某些項目當成命名屬性使用,則出現在 DN 中的值將不會加密,但儲存在項目中的值將會加密。

    您可以選擇 userPassword 屬性進行加密,但這並沒有實際的安全性效益,除非密碼以純文字儲存,如 DIGEST-MD5 SASL 驗證一樣。如果密碼原則中已為密碼設定加密機制,則更進一步的加密所能增加的安全性有限,還會影響每一次連結作業的效能。

    使用主控台設定屬性加密

    1. 在 Directory Server 主控台上選擇 [組態] 標籤,展開 [資料] 節點,並選擇您想要加密屬性值的尾碼。選擇右面板中的 [屬性加密] 標籤。
    2. 此標籤包含一份表格,列出此尾碼目前所有加密屬性的名稱和加密結構。

    3. 若要為屬性啟用加密:
      1. 按一下 [加入屬性] 按鈕以顯示屬性清單。
      2. 從清單中選擇要加密的屬性,再按一下 [確定]。屬性會加入表格的 [屬性名稱] 欄。
      3. 從屬性名稱旁的下拉式清單中,選擇此屬性的 [加密結構]。

    4. 若要使屬性不再加密,請從表格中選擇屬性名稱,再按一下 [刪除屬性] 按鈕。
    5. 按一下 [儲存]。系統會提示您在變更組態前,先將尾碼內容匯出至 LDIF 檔案。
    6. 按一下 [匯出尾碼] 開啟匯出對話方塊,或按一下 [繼續],不需要匯出即可修改屬性加密組態。然後新的組態就會儲存起來。
    7. 如果您尚未匯出尾碼,您必須立即執行此動作以儲存其內容。如果尾碼包含加密的屬性,而且您計劃在下個步驟中使用此 LDIF 檔案重新初始化尾碼,這些屬性在匯出的 LDIF 中可以保持加密狀態。

      現在將出現提示,要您從 LDIF 檔案初始化尾碼。

    8. 現在按一下 [初始化尾碼] 開啟初始化對話方塊,然後再輸入 LDIF 檔案名稱載入目錄。
    9. 如果在上個步驟中匯出含加密屬性的尾碼,您現在必須用該檔案初始化,因為一旦尾碼重新初始化後,加密值將無法回復。在載入及建立索引的同時,指定屬性的所有值都將會加密。

      如果您不想在此時初始化尾碼,請按一下 [關閉]。您可於稍後再使用<匯入資料>中所描述的程序來匯入資料。

    10. 如果組態已改為會加密一或多個屬性,而且這些屬性在匯入作業之前曾經有值,資料庫快取中可能依舊看得到部分未加密的值。若要清除資料庫快取:
      1. 依<啟動和停止目錄伺服器> 所述停止目錄伺服器。
      2. 以 root 或具有管理員權限的身份,將資料庫快取檔案從檔案系統中刪除:
      3. ServerRoot/slapd-serverID/db/__db.*

      4. 重新啟動目錄伺服器。伺服器將自動新增資料庫快取檔案。

    從指令行設定屬性加密

    1. 如果要設定屬性加密的尾碼上有任何項目,您必須先將該尾碼的內容匯出到 LDIF 檔案。如需更多資訊,請參閱<匯出日期>。
    2. 如果尾碼包含加密的屬性,而且您計劃在步驟 5 中使用此 LDIF 檔案重新初始化尾碼,這些屬性在匯出的 LDIF 中可以保持加密狀態。

    3. 若要為屬性啟用加密,請使用 ldapmodify 指令加入下列組態項目:
    4. ldapmodify -a -h host -p port -D cn=Directory Manager -p password
      dn:cn=attributeName, cn=encrypted attributes, cn=databaseName,
       cn=ldbm database, cn=plugins, cn=config
      objectclass:top
      objectclass:dsAttributeEncryption
      cn:attributeName
      dsEncryptionAlgorithm:cipherName

      其中 attributeName 是要加密的屬性類型名稱,databaseName 是對應到尾碼的資料庫符號名稱,而 cipherName 是下列其中之一:

      • ckm_des_cbc - DES 區塊密碼
      • ckm_des3_cbc - 三重 DES 區塊密碼
      • ckm_rc2_cbc - RC2 區塊密碼
      • ckm_rc4 - RC4 資料流密碼

    5. 若要使屬性不再加密,請使用 ldapmodify 指令修改下列組態項目:
    6. ldapmodify -h host -p port -D cn=Directory Manager -p password
      dn:cn=attributeName, cn=encrypted attributes, cn=databaseName,
       cn=ldbm database, cn=plugins, cn=config
      changetype:modify
      replace:dsEncryptionAlgorithm
      dsEncryptionAlgorithm:clearText

      其中 attributeName 是要加密的屬性類型名稱,而 databaseName 是對應到尾碼的資料庫符號名稱。



      注意

      請勿刪除屬性加密組態項目。下次初始化尾碼時會自動移除該項目。



    7. 如果組態已改為會加密一或多個屬性,而且這些屬性在匯入作業之前曾經有值,資料庫快取中可能依舊看得到部分未加密的值。若要清除資料庫快取:
      1. 依<啟動和停止目錄伺服器> 所述停止目錄伺服器。
      2. 以 root 或具有管理員權限的身份,將資料庫快取檔案從檔案系統中刪除:
      3. ServerRoot/slapd-serverID/db/__db.*

      4. 重新啟動目錄伺服器。伺服器將自動建立新的資料庫快取檔案。在快取再次填滿之前,此尾碼中的作業效能可能會稍微受到影響。

    8. 依<匯入資料>所述用 LDIF 檔案初始化尾碼。如果在步驟 1 中匯出尾碼,請使用該檔案,以確保您的尾碼擁有最新的內容。如果在步驟 1 中匯出含加密屬性的尾碼,您現在必須用該檔案初始化,因為一旦尾碼重新初始化後,加密值將無法擷取。
    9. 在載入檔案及建立對應索引的同時,指定屬性的所有值都將會加密。

    維護參考的完整性

    參考的完整性是一種外掛程式機制,可確保維護相關項目之間的關係。許多屬性類型 (例如群組成員的屬性) 中包含另一個項目的 DN。參考的完整性可確保移除項目時,包含其 DN 的所有屬性也會一併移除。

    例如,如果移除了目錄的使用者項目,而且已經啟用參考的完整性,則伺服器也會移除使用者為成員之一之所有群組的使用者。如果沒有啟用參考的完整性,管理員必須手動從群組中移除使用者。如果您將目錄伺服器與其他需要用到使用者與群組管理目錄的 Sun ONE 產品進行整合時,這會是一項重要功能。

    參考的完整性操作方法

    當啟用參考的完整性外掛程式時,其會在刪除或重新命名作業之後,立即執行特定屬性上的完整性更新。依據預設,參考的完整性外掛程式是停用的。

    每當您刪除或重新命名目錄中的使用者或群組項目時,會將作業記錄在參考的完整性記錄檔中:

    ServerRoot/slapd-serverID/logs/referint

    經過特定時間 (即更新間隔) 後,伺服器會在啟用參考的完整性之所有屬性上執行搜尋,並使搜尋出來的項目與出現在記錄檔中已刪除或已修改項目的 DN 互相符合。如果記錄檔顯示已經刪除項目,則對應的屬性也會刪除。如果記錄檔顯示已經變更項目,則對應的屬性值也會相對地修改。

    若啟用參考完整性外掛程式的預設組態,每次執行刪除或重新命名作業後,它會立即在 member、uniquemember、owner、seeAlso 和 nsroledn 屬性上執行完整性更新。但是您可以依照您的需要設定參考完整性外掛程式的運作方式:

    • 在不同檔案中記錄參考的完整性更新。
    • 修改更新間隔。如果要減少參考的完整性更新對系統造成的影響,您最好增加更新之間的時間長度。
    • 選擇要套用參考的完整性的屬性。如果使用或定義包含 DN 值的屬性,您可能想用參考的完整性外掛程式監控它們。

    設定參考的完整性

    使用下列程序可從 Directory Server 主控台啟用或停用參考的完整性,以及設定外掛程式的組態:

    1. 在 Directory Server 主控台最上層的 [組態] 標籤上,展開 [外掛程式] 節點,再選擇 [referential integrity postoperation plug-in]。
    2. 外掛程式的設定顯示在右面板中。

    3. 選擇 [啟用外掛程式] 核取方塊以啟用外掛程式,清除核取方塊以停用外掛程式。
    4. 設定 [引數 1] 的值,以修改更新的間隔秒數。常用的值為:
      • 0 - 每次作業後立即更新請仔細考慮,每次刪除和修改作業後立即執行參考完整性檢查會對伺服器效能產生顯著的影響。
      • 90 - 每 90 秒更新一次
      • 3600 - 每 1 小時更新一次
      • 10,800 - 每 3 小時更新一次
      • 28,800 - 每 8 小時更新一次
      • 86,400 - 每天更新一次
      • 604,800 - 每周更新一次

    5. 設定 [引數 2] 的值,成為您要使用參考完整性記錄檔的絕對路徑。
    6. [引數 3] 用不到,但必須存在。

    7. 受參考完整性外掛程式監控的屬性由 [引數 4] 開始列起。按一下 [加入] 與 [刪除] 按鈕可管理此清單,及加入您自己的屬性。


    8. 注意

      為獲得最佳效能,由參考完整性外掛程式更新的屬性也應該編製索引。如需相關資訊,請參閱第 10 章<管理索引>。



    9. 按一下 [儲存] 以儲存您的變更。
    10. 變更生效前,您必須重新啟動 Directory Server。

    將參考的完整性用於複寫

    在複寫環境中,若需要參考的完整性外掛程式,其使用有某些限制:

    • 包含主機複本的所有伺服器上都必須啟用。
    • 在每部主機上必須用相同的組態啟用。
    • 在只包含集線器或用戶複本的伺服器上,啟用此功能並沒有幫助。

    若要在複寫拓撲中設定參考的完整性外掛程式:

    1. 確定已設定所有複本的組態,而且已定義所有複寫協議。
    2. 決定將為其維護參考完整性的屬性組。並決定主機伺服器上所要使用的更新間隔。
    3. 使用相同的屬性組及相同的更新間隔啟用所有主機伺服器上的參考完整性外掛程式。此程序會在<設定參考的完整性>中描述。
    4. 請確定所有用戶伺服器上參考的完整性外掛程式都是停用的。


    上一章     目錄     索引     說明文件首頁     下一章    
    版權所有 2003 Sun Microsystems, Inc. 保留所有權利。