本節說明如何透過 LDAP 建立、檢視及刪除物件類別。
cn=schema 項目具有多值屬性 objectClasses,此屬性含有目錄模式中各種物件類別的定義。您可以使用 ldapmodify(1) 指令增加至這些定義。
新的物件類別定義,以及您對使用者定義的物件類別所做的變更,都會儲存在 99user.ldif 檔案中。
若要建立數個繼承自其他物件類別的物件類別,您必須先建立父系物件類別。若您的新物件類別使用自訂屬性,則也必須先定義這些屬性。
對於每個物件類別定義,必須至少提供一個 OID。請考慮對新的物件類別至少使用下列元素:
物件類別 OID。對應至您物件類別的物件識別碼。OID 是一個可唯一識別模式物件的字串,通常為小數點十進位數字。
如需嚴格的 LDAP v3 規範遵循,則必須提供有效數值 OID。若想進一步瞭解 OID,或要為您的企業申請前綴,請將電子郵件寄至 IANA (網際網路位址指派機構) iana@iana.org,或造訪 IANA 網站。
物件類別名稱。對應至物件類別的唯一名稱。
父系物件類別。此物件類別從中繼承屬性的現有物件類別。
若不讓此物件類別繼承自其他特定物件類別,請使用 top。
一般而言,若要為使用者項目新增屬性,父系將會是 inetOrgPerson 物件類別。若要為公司項目新增屬性,父系通常是 organization 或 organizationalUnit。若要為群組項目新增屬性,父系通常是 groupOfNames 或 groupOfUniqueNames。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
根據 RFC 4517 中所指定的語法,備妥您的物件類別定義。
使用 ldapmodify(1) 指令,增加您的物件類別定義。
請注意,目錄伺服器會將 X-ORIGIN 'user defined' 增加到您所提供的定義中。
下列範例使用 ldapmodify 指令新增物件類別。
$ cat blogger.ldif dn: cn=schema changetype: modify add: objectClasses objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger' DESC 'Someone who has a blog' SUP inetOrgPerson STRUCTURAL MAY blog ) $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -f blogger.ldif Enter bind password: modifying entry cn=schema $ |
在生產環境中,您必須提供有效且唯一的 OID,而非 1.2.3.4.5.6.8。
cn=schema 項目具有多值屬性 objectClasses,此屬性含有目錄模式中各種物件類別的定義。您可以使用 ldapsearch(1) 指令讀取這些定義。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
下列指令可顯示所有物件類別的定義:
$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses |
-T 選項可使 ldapsearch 指令不會進行 LDIF 換行,而使您能夠更容易地使用 grep 或 sed 之類的指令處理輸出。若您接著透過 grep 指令對此指令的輸出使用管道符號,就只能檢視目錄模式內使用者定義的延伸。例如:
$ ldapsearch -T -b cn=schema "(objectclass=*)" objectClasses | grep "user defined" objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger' DESC 'Someone who has a blog' STRUCTURAL MAY blog X-ORIGIN 'user defined' ) $ |
cn=schema 項目具有多值屬性 objectClasses,此屬性含有目錄模式中各種物件類別的定義。您可以使用 ldapmodify(1) 指令刪除具有 X-ORIGIN 'user defined' 的定義。
模式係由 LDAP 檢視定義於 cn=schema 中,因此您可以使用 ldapsearch 與 ldapmodify 公用程式,以線上方式檢視及修改模式。但您只能刪除在 X-ORIGIN 欄位中具有 'user defined' 值的模式元素。伺服器將不會刪除其他定義。
您對使用者定義的元素所做的變更,會儲存在 99user.ldif 檔案中。
您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
檢視要刪除之物件類別的定義。
如需詳細資訊,請參閱檢視物件類別。
使用 ldapmodify(1) 指令,刪除模式中所出現的物件類別定義。
下列指令將刪除範例 11–4 中所建立的物件類別:
$ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - Enter bind password: dn: cn=schema changetype: delete delete: objectClasses objectClasses: ( 1.2.3.4.5.6.8 NAME 'blogger' DESC 'Someone who has a blog' STRUCTURAL MAY blog X-ORIGIN 'user defined' ) ^D |
請注意,您必須納入 X-ORIGIN 'user defined' 這項由目錄伺服器增加,而用以將此模式定義歸類為延伸的屬性。