相关文章推荐

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

管理項目 ldapmodify ldapdelete ldapmodify ldapdelete 指令行公用程式提供完整的功能可進行增加、編輯與刪除目錄內容。使用這些公用程式,可讓您管理伺服器的配置項目與使用者項目中的資料。這些公用程式亦可用以寫入程序檔,以執行一或多個目錄的大量管理。

本書中的多項程序皆會用到 ldapmodify ldapdelete 指令。以下幾節將說明執行程序時所需進行的基本作業。如需有關 ldapmodify ldapdelete 指令的更多資訊,請參閱 「Sun Java System Directory Server Enterprise Edition 6.1 Reference」

指令行公用程式的輸入一律用於 LDIF 中,可直接從指令行提供,也可以透過輸入檔提供。下節將提供 LDIF 輸入的相關資訊,而後續幾節將說明每個修改類型的 LDIF 輸入。

如需有關正確格式化 LDIF 輸入的資訊,請參閱 「Sun Java System Directory Server Enterprise Edition 6.1 Reference」 中的 「Guidelines for Providing LDIF Input」

以下幾節將說明這些基本作業:

使用 ldapmodify 增加項目
$ ldapmodify -a -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind 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: [email protected]
userPassword: secret
-D -w 選項分別可為有權建立這些項目的使用者指定連結 DN 與密碼。 -a 選項可指定將增加 LDIF 內的所有項目。接著,每個項目會依其 DN 與屬性值列出,每個項目皆會以空行隔開。每個項目在輸入後即由 ldapmodify 公用程式予以建立,且公用程式會報告任何發生的錯誤。

依慣例,項目的 LDIF 會列出下列屬性:

項目的 DN。

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind 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: [email protected]
userPassword: secret
changetype: add 關鍵字表示,具有指定 DN 的項目應以所有後續的屬性建立。其他所有的選項與 LDIF 慣例皆與本節稍早的說明相同。

在這兩個範例中,您都可以使用 -f filename 選項從檔案讀取 LDIF,而不需從終端機輸入讀取。LDIF 檔案所含的格式必須與用於終端機輸入的格式相同,視 -a 選項的使用情形而定。

使用 ldapmodify 修改項目

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

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

請使用連字符 ( - ) 隔開同一行中相同項目的作業,並使用空行隔開不同項目的作業群組。您也可以為每個作業指定數個 attribute : value 對。

增加屬性值

無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。

下列範例將說明如何使用相同的 add LDIF 語法在現有的多值屬性中增加值,以及在尚不存在的屬性中增加值:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
add: cn
cn: Babs Jensen
add: mobile
mobile: (408) 555-7844

若有下列任一情況,此作業即可能失敗,而伺服器將傳回錯誤:

屬性中已有指定的值存在。

使用二進位屬性子類型

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

attribute ;binary 子類型表示,無論屬性值的實際語法為何,均必須當做二進位資料透過 LDAP 傳輸。此子類型適用於不具 LDAP 字串表示法的複雜語法,如 userCertificate 。除此用途之外,均不應使用二進位子類型。

ldapmodify 指令搭配使用時,可在任何 LDIF 陳述式的屬性名稱中增加適當的子類型。

輸入二進位值時,可以直接以 LDIF 文字鍵入,或從其他檔案中加以讀取。下列範例說明從檔案中加以讀取的 LDIF 語法:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
version: 1
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
add: userCertificate;binary
userCertificate;binary:< file:///local/cert-file

若要以 :< 語法指定檔案名稱,必須以行 version:1 做為 LDIF 陳述式的開頭。 ldapmodify 在處理此陳述式時,會將屬性設為從指定檔案的所有內容讀取出來的值。

以語言子類型增加屬性

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

屬性的語言與發音子類型可指定本土化的值。當您指定屬性的語言子類型時,該子類型會以下列形式增加到屬性名稱中:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
add: homePostalAddress;lang-fr
homePostalAddress;lang-fr: 34, rue de la Paix

備註 –

若屬性值含有非 ASCII 字元,則必須以 UTF-8 編碼這些字元。

修改屬性值

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

下列範例說明如何使用 LDIF 中的 replace 語法變更屬性的值:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
replace: sn
sn: Morris
replace: cn
cn: Barbara Morris
cn: Babs Morris

指定屬性目前所有的值均會遭移除,而加入所有指定的值。

變更屬性值後,可以使用 ldapsearch 指令驗證變更。

屬性值的空格結尾

修改屬性值時,請勿不慎在值的結尾留下空格。空格結尾可能會致使值以 base-64 編碼 (如 34xy57eg ) 顯示。

屬性值的結尾若為空格,則會將此空格編碼為屬性值的一部分。當您使用 DSCC 或 ldapsearch 指令驗證變更時,所看見的值可能會是純文字,但也可能以 base-64 編碼文字呈現。這取決於您所使用的是哪個目錄伺服器用戶端。

刪除屬性值

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

下列範例將說明如何徹底刪除屬性,以及如何僅刪除多值屬性的某個值:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
delete: facsimileTelephoneNumber
delete: cn
cn: Babs Morris

僅使用 delete 語法而未指定 attribute: value 對時,屬性中所有的值皆會遭移除。若您指定了 attribute: value 對,則只會移除該值。

修改多值屬性的某個值

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

若要以 ldapmodify 指令修改多值屬性的某個值,必須執行兩項作業,如下範例所示:

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: modify
delete: mobile
mobile: (408) 555-7845
add: mobile
mobile: (408) 555-5487

使用 ldapdelete 刪除項目

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

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

您無法刪除具有子項的項目。LDAP 協定不允許子項目無父系的情形。例如,在您刪除所有屬於組織單位的項目之前,都無法刪除組織單位項目。

下列範例將說明組織單位中的一個項目。此項目及其父系項目可依序刪除。

$ ldapdelete -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
Enter bind password:
uid=bjensen,ou=People,dc=example,dc=com
ou=People,dc=example,dc=com

使用 ldapmodify 刪除項目

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

使用 ldapmodify 公用程式時,也可以使用 changetype: delete 關鍵字刪除項目。使用 ldapdelete 時的所有限制於此時同樣適用,如上一節所述。使用 LDIF 語法刪除項目的好處在於,您可以在同一個 LDIF 檔案中執行多種不同的作業。

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

$ ldapmodify -h host1 -p 1389 -D cn=admin,cn=Administrators,cn=config -w -
dn: uid=bjensen,ou=People,dc=example,dc=com
changetype: delete
dn: ou=People,dc=example,dc=com
changetype: delete

使用 ldapsearch 搜尋項目

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱 目錄服務控制中心介面 與 DSCC 線上說明。

您可以使用 ldapsearch 指令行公用程式尋找及擷取目錄項目。請注意, ldapsearch 公用程式並不是 Solaris 平台隨附的公用程式,但屬於 Directory Server Resource Kit 的一部分。

如需有關使用 ldapsearch 、一般 ldapsearch 選項、適用格式與範例的更多資訊,請參閱 「Sun Java System Directory Server Enterprise Edition 6.1 Reference」

 
推荐文章