如何建立目錄服務登錄的一般資訊是在Sun Directory Service 3.1 管理手冊第五章,“載入及維護目錄資訊”。這一節介紹如何建立 Solaris for ISPs 需要的特定登錄的指示。
針對如何利用 Deja 工具建立目錄登錄的資訊,請參閱 SunTM Internet AdministratorTM 線上解說。
Sun Directory Services 有下列的指令行公用程式用來建立和修改目錄登錄:
ldapadd
ldapmodify
ldapdelete
這些目錄服務指令行公用程式需要 root 存取權。在參考文件手冊頁 (第一節)有完整的資訊。
ldapadd和ldapmodify兩者都可以從指令行或設定的檔案獲得輸入。因為登錄的資訊可能冗長及複雜,隨後的區段會描述需要文字檔案的格式。
在每個條件中,建立一個登錄 (或是多個登錄) 需要下列步驟:
在每個條件中,ldapadd指令格式應該為:
# ldapadd -D "BindDN" -w 密碼 -f 檔案
其中BindDN是鏈結到目錄與寫入存取權到目錄樹狀的這個部份的區別名稱 (DN) ,密碼則是鏈結密碼。替換檔案選項為您建立ldif檔案的名稱。
對每一個您增加在指令行的登錄,您會建立一個ldif格式檔案以便保留有關登錄的資訊。這些是簡單的文字檔案帶有一或多個目錄登錄,每個登錄以單一空白行區隔。每個登錄有它的結構: 下列是範例。
只有指示屬性會在範例中顯示。大部份的物件類別有數個選擇性的屬性,對您特殊登錄的使用設定比較適當。
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
其中
表示所建立登錄的區別名稱。
是所建立登錄的命名屬性。普通命名屬性包括commonName,organizationalUnit(ou),和domainComponent(dc)。
包含在 DC 樹狀中相對應的領域名稱 (以點為符號)。請參閱"Solaris for ISPs 目錄結構"有關 OSI 樹狀如何與 DC 樹狀交談的資訊。請參閱"建立領域登錄"有關給領域建立兩個交叉參考登錄的資訊
可能有許多屬性:值成對在這個位置,一行一個。
是登錄的物件類別 (形態)。可能有許多objectClass登錄,這個範例顯示兩個。
針對可用物件類別和屬性的詳細資訊,請參閱本指南的第 6章, Solaris for ISPs 目錄服務機制,和第八章,“ 配置目錄機制,”在Sun Directory Service 3.1 管理手冊。
要在目錄中建立一個領域,您必須建立兩個平行領域登錄,一個在 OSI 樹狀另一個在 DC 樹狀,然後在 OSI 樹狀中的領域登錄之下建立必要的organizationalUnit登錄。
要在 eng.sun.com 之下建立領域wcgate1,請執行下列步驟:
編輯一個文字檔案(例如,domain.ldif)並輸入 OSI 樹狀登錄的資料:
dn: ou=wcgate1,ou=eng,o=sun,c=US ou: wcgate1 associateddomain: wcgate1.eng.sun.com objectclass: organizationalUnit objectclass: domainRelatedObject
要注意登錄的associatedDomain屬性包含了以點為符號 ( DNS 樣式) 的DC 樹狀登錄名稱。
為 DC 樹狀登錄新增到domain.ldif的資料:
dn: dc=wcgate1,dc=eng,dc=sun,dc=com dc: wcgate1 associatedname: ou=wcgate1,ou=eng,o=sun,c=US 描述: 針對 wcgatel.eng.sun.com 的 DNS 對 DN 對應 labeleduri: ldap:///ou=wcgate1,ou=eng,o=sun,c=US??sub objectclass: 領域 objectclass: labeledURIObject
要注意登錄的associatedName屬性包含了 OSI 樹狀登錄的區別名稱。labeledURI屬性包含一樣的資訊 ( 與 RFC 2255 中設定的一樣)。
新增到domain.ldif的資料給所需要的服務組織單位登錄:
dn: ou=223 服務,ou=wcgate1,ou=eng,o=sun,c=US ou: 服務 objectclass: organizationalUnit
新增到domain.ldif的資料給所需要的人組織單位登錄:
dn: ou=人,ou=wcgate1,ou=eng,o=sun,c=US ou: 人 objectclass: organizationalUnit
新增到domain.ldif的資料給所需要的群組組織單位登錄:
dn: ou=群組,ou=wcgate1,ou=eng,o=sun,c=US ou: 群組 objectclass: organizationalUnit
儲存並關閉domain.ldif。
以下列指令獲得 root 存取權並在目錄新增登錄,以您自己所有的替換結合 DN 及密碼:
# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f domain.ldif
當您的ldapadd完成時,目錄看起來像圖 5-5。
Solaris for ISPs 使用者來自多種組合:
一般的 (基本的) 使用者
使用虛擬主機 FTP 或全球資訊網服務的使用者
透過 RADIUS 伺服器得到服務存取權的使用者
可以使用上述兩種且目錄登錄需要 RADIUS 和 FTP 資訊的使用者
在接下來幾節中,提供了藉由建立簡單登錄以便加入並建立複雜使用者登錄的指示。
在您建立使用者登錄之前,領域及人組織單位登錄必須存在。一旦您建立那些登錄,您可以編輯一個文字檔案 (例如,people.ldif) 並且輸入使用者的資料。基本的使用者登錄有單一物件類別ispSubscriber,及少數的指示屬性。基本使用者檔案看起來像:
dn: cn=Jane Doe (jldoe),ou=人,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: 隱藏 objectclass: ispSubscriber
其中
是使用者登錄的區別名稱。
是一個使用者登錄 (ispSubscriber物件類別)的命名屬性。針對 Solaris for ISPs 使用者及管理者而言,commonName屬性的值得自於名字 姓氏 (userid)。
是使用者的姓氏。
是使用者的登入名稱。
是密碼,如果您和 UNIX 帳戶共用密碼資訊,則限制為八個字元。這個值是用您在目錄服務管理主控台設定的加密方法所產生的。
是這個使用者登錄的物件類別形態。
您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:
# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif
SunTM Internet FTP ServerTM 和 SunTM WebServerTM (SWS) 中可使用的特殊配置之虛擬主機所需的資訊,只在資料檔案增加三個屬性:
gidnumber: 60001 uidnumber: 60001 ispcontentdirectory: jldoe
其中
是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID 。
是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID。
是這個使用者的內容檔案所在的位置 (對應到關聯的領域文件根) 。
設定uidNumber和gidNumber屬性的值需要現存的 UNIX 帳戶適當設定對虛擬 FTP 領域共用存取權。請參閱 Sun Internet FTP Server 線上解說針對定義虛擬主機配置的資訊。
您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:
# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif
如果您已經建立好這些登錄,您必須執行一個ldapmodify。尋找手冊頁的ldapmodify(1)並跟隨指示。
針對一個透過 RADIUS 伺服器獲得 ISP 服務存取權的使用者,其登錄必須支援其他的物件類別 (remoteUser) 並且有幾個屬性增加到登錄資訊。
內定 Solaris for ISPs 配置指定 root 領域為 RADIUS 使用者登錄的搜尋基礎。如果您有不同的配置,可以利用目錄服務管理主控台配置 RADIUS 並輸入適用您搜尋基礎的值。
在ldif檔案中其他行是:
objectclass: remoteUser authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: None framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
其中
針對利用 RADIUS 伺服器存取服務的使用者是必要的物件類別。
是加在使用者的使用者名稱的字尾,以便 RADIUS 伺服器在不同領域中辨識有相同uid的登錄。對特定的使用者輸入適當的字尾。
指示 RADIUS 伺服器在選取登錄作辨證之前要先確認authSuffixName屬性值。
指示 RADIUS 伺服器在選取登錄作辨證之前要先確認userPassword屬性值。
如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。
如果您使用內定 RADIUS配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。
如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。
告訴 RADIUS 伺服器在它的回覆訊息包含authServiceProtocol屬性的值。
告訴 RADIUS 伺服器在它的回覆訊息包含framedProtocol屬性的值。
告訴 RADIUS 伺服器在它的回覆訊息包含framedRouting屬性的值。
您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:
# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif
如果您已經建立這些登錄,您必須執行一個ldapmodify。尋找手冊頁的ldapmodify(1)並跟隨指示。
對一個複合使用者而言完整的ldif檔案看起來像:
dn: cn=Jane Doe (jldoe),ou=人,ou=wcgate1,ou=eng,o=sun,c=US commonname: Jane Doe (jldoe) sn: Doe uid: jldoe userpassword: 隱藏 gidnumber: 60001 uidnumber: 60001 objectclass: ispSubscriber objectclass: remoteUser ispcontentdirectory: /home/users/jldoe authsuffixname: @ispxpress grpcheckinfo: authSuffixName grpcheckinfo: userPassword authserviceprotocol: Framed-User framedrouting: 無 framedprotocol: PPP grpreplyinfo: authServiceProtocol grpreplyinfo: framedProtocol grpreplyinfo: framedRouting
在您建立群組登錄之前,若干的登錄必須存在:
兩個領域登錄 (OSI 和 DC 樹狀)
群組組織單位登錄
使用者登錄 (在人 節點下)會變成群組的成員。
一旦您建立了那些登錄,您可以啟動一個文字檔 (例如,groups.ldif) 並且輸入群組的資料。典型的資料集如下:
dn: cn=isp-gp1,ou=群組,ou=wcgate1,ou=eng,o=sun,c=US cn: isp-grp1 objectclass: groupOfNames 成員: cn=Ed Anchor (定錨點),ou=人,ou=wcgate1,ou=eng,o=sun,c=US 成員: cn=April Shower (顯示者),ou=人,ou=wcgate1,ou=eng,o=sun,c=US 成員: cn=Chili Jones (relleno),ou=人,ou=wcgate1,ou=eng,o=sun,c=US
其中
是所建立群組的區別名稱。
是群組登錄的相對區別名稱。
物件類別groupOfNames識別這個形態的登錄。
每個成員屬性是以現存的使用者登錄的區別名稱為值。
您可以藉由在檔案增加資料來建立任何數量的群組登錄。當完成時,請儲存並關閉groups.ldif。以下列指令獲得 root 存取權並且在目錄增加群組,以您自己所有的替換結合 DN 及密碼:
# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f groups.ldif