Solaris for ISPs 管理手冊

從指令行製作目錄登錄

如何建立目錄服務登錄的一般資訊是在Sun Directory Service 3.1 管理手冊第五章,“載入及維護目錄資訊”。這一節介紹如何建立 Solaris for ISPs 需要的特定登錄的指示。

針對如何利用 Deja 工具建立目錄登錄的資訊,請參閱 SunTM Internet AdministratorTM 線上解說。

建立目錄登錄: 一般程序

Sun Directory Services 有下列的指令行公用程式用來建立和修改目錄登錄:

這些目錄服務指令行公用程式需要 root 存取權。在參考文件手冊頁 (第一節)有完整的資訊。

ldapaddldapmodify兩者都可以從指令行或設定的檔案獲得輸入。因為登錄的資訊可能冗長及複雜,隨後的區段會描述需要文字檔案的格式。

在每個條件中,建立一個登錄 (或是多個登錄) 需要下列步驟:

  1. 寫一個檔案設定登錄要在目錄中製作。這個檔案的格式設定在參考文件手冊頁的ldif(4)

  2. 獲得 root 存取權並且用ldapadd建立登錄,用登錄資訊設定檔案。

在每個條件中,ldapadd指令格式應該為:

# ldapadd -D "BindDN" -w 密碼 -f 檔案

其中BindDN是鏈結到目錄與寫入存取權到目錄樹狀的這個部份的區別名稱 (DN) ,密碼則是鏈結密碼。替換檔案選項為您建立ldif檔案的名稱。

ldif(4)檔案的結構

對每一個您增加在指令行的登錄,您會建立一個ldif格式檔案以便保留有關登錄的資訊。這些是簡單的文字檔案帶有一或多個目錄登錄,每個登錄以單一空白行區隔。每個登錄有它的結構: 下列是範例。


註解 -

只有指示屬性會在範例中顯示。大部份的物件類別有數個選擇性的屬性,對您特殊登錄的使用設定比較適當。


dn: ou=wcgate1,ou=eng,o=sun,c=US 
ou: wcgate1 
associateddomain: wcgate1.eng.sun.com 
objectclass: organizationalUnit 
objectclass: domainRelatedObject

其中

dn

表示所建立登錄的區別名稱。

ou

是所建立登錄的命名屬性。普通命名屬性包括commonNameorganizationalUnit(ou),和domainComponent(dc)。

associatedDomain

包含在 DC 樹狀中相對應的領域名稱 (以點為符號)。請參閱"Solaris for ISPs 目錄結構"有關 OSI 樹狀如何與 DC 樹狀交談的資訊。請參閱"建立領域登錄"有關給領域建立兩個交叉參考登錄的資訊

可能有許多屬性:值成對在這個位置,一行一個。

objectClass

是登錄的物件類別 (形態)。可能有許多objectClass登錄,這個範例顯示兩個。

針對可用物件類別和屬性的詳細資訊,請參閱本指南的第 6章, Solaris for ISPs 目錄服務機制,和第八章,“ 配置目錄機制,”在Sun Directory Service 3.1 管理手冊

建立領域登錄

要在目錄中建立一個領域,您必須建立兩個平行領域登錄,一個在 OSI 樹狀另一個在 DC 樹狀,然後在 OSI 樹狀中的領域登錄之下建立必要的organizationalUnit登錄。

要在 eng.sun.com 之下建立領域wcgate1,請執行下列步驟:

  1. 編輯一個文字檔案(例如,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 樹狀登錄名稱。

  2. 為 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 中設定的一樣)。

  3. 新增到domain.ldif的資料給所需要的服務組織單位登錄:

    dn: ou=223 服務,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 服務 
    objectclass: organizationalUnit
  4. 新增到domain.ldif的資料給所需要的組織單位登錄:

    dn: ou=人,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 人 
    objectclass: organizationalUnit 
  5. 新增到domain.ldif的資料給所需要的群組組織單位登錄:

    dn: ou=群組,ou=wcgate1,ou=eng,o=sun,c=US 
    ou: 群組 
    objectclass: organizationalUnit
  6. 儲存並關閉domain.ldif

  7. 以下列指令獲得 root 存取權並在目錄新增登錄,以您自己所有的替換結合 DN 及密碼:

    # ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f domain.ldif

當您的ldapadd完成時,目錄看起來像圖 5-5

圖 5-5 領域增加的目錄結構

Graphic

建立使用者登錄

Solaris for ISPs 使用者來自多種組合:

在接下來幾節中,提供了藉由建立簡單登錄以便加入並建立複雜使用者登錄的指示。

建立基本使用者登錄

在您建立使用者登錄之前,領域及組織單位登錄必須存在。一旦您建立那些登錄,您可以編輯一個文字檔案 (例如,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 

其中

dn

是使用者登錄的區別名稱。

commonName

是一個使用者登錄 (ispSubscriber物件類別)的命名屬性。針對 Solaris for ISPs 使用者及管理者而言,commonName屬性的值得自於名字 姓氏 (userid)。

sn

是使用者的姓氏。

uid

是使用者的登入名稱。

userPassword

是密碼,如果您和 UNIX 帳戶共用密碼資訊,則限制為八個字元。這個值是用您在目錄服務管理主控台設定的加密方法所產生的。

objectClass: ispSubscriber

是這個使用者登錄的物件類別形態。

您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif

增加 FTP 和全球資訊網虛擬主機資訊

SunTM Internet FTP ServerTM 和 SunTM WebServerTM (SWS) 中可使用的特殊配置之虛擬主機所需的資訊,只在資料檔案增加三個屬性:

gidnumber: 60001 
uidnumber: 60001 
ispcontentdirectory: jldoe

其中

gidNumber

是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID 。

uidNumber

是設定給這個使用者在 FTP 和全球資訊網服務虛擬主機領域的 UNIX 群組 ID。

ispContentDirectory

是這個使用者的內容檔案所在的位置 (對應到關聯的領域文件根) 。


註解 -

設定uidNumbergidNumber屬性的值需要現存的 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 

其中

objectClass: remoteUser

針對利用 RADIUS 伺服器存取服務的使用者是必要的物件類別。

authsuffixname: @ispxpress

是加在使用者的使用者名稱的字尾,以便 RADIUS 伺服器在不同領域中辨識有相同uid的登錄。對特定的使用者輸入適當的字尾。

grpcheckinfo: authSuffixName

指示 RADIUS 伺服器在選取登錄作辨證之前要先確認authSuffixName屬性值。

grpcheckinfo: userPassword

指示 RADIUS 伺服器在選取登錄作辨證之前要先確認userPassword屬性值。

authserviceprotocol: Framed-User

如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

framedrouting: None

如果您使用內定 RADIUS配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

framedprotocol: PPP

如果您使用內定 RADIUS 配置,請完全按照所示輸入這屬性。正確的值是由您網路存取權伺服器的配置所決定。

grpreplyinfo: authServiceProtocol

告訴 RADIUS 伺服器在它的回覆訊息包含authServiceProtocol屬性的值。

grpreplyinfo: framedProtocol

告訴 RADIUS 伺服器在它的回覆訊息包含framedProtocol屬性的值。

grpreplyinfo: framedRouting

告訴 RADIUS 伺服器在它的回覆訊息包含framedRouting屬性的值。

您可以藉由在檔案以不同的屬性值增加資料區塊來建立任何數量的使用者登錄。當完成時,請儲存並關閉people.ldif。以下列指令獲得 root 存取權並且在目錄增加使用者登錄,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f people.ldif

如果您已經建立這些登錄,您必須執行一個ldapmodify。尋找手冊頁的ldapmodify(1)並跟隨指示。

完整ldif檔案

對一個複合使用者而言完整的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 

建立群組登錄

在您建立群組登錄之前,若干的登錄必須存在:

一旦您建立了那些登錄,您可以啟動一個文字檔 (例如,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

其中

dn

是所建立群組的區別名稱。

cn

是群組登錄的相對區別名稱。

objectClass

物件類別groupOfNames識別這個形態的登錄。

成員

每個成員屬性是以現存的使用者登錄的區別名稱為值。

您可以藉由在檔案增加資料來建立任何數量的群組登錄。當完成時,請儲存並關閉groups.ldif。以下列指令獲得 root 存取權並且在目錄增加群組,以您自己所有的替換結合 DN 及密碼:

# ldapadd -D "cn=admin,o=sun,c=US" -w 密碼 -f groups.ldif