17.4 使 NCP 與 POSIX 檔案存取權限一致

NetWare 管理員對於目錄與檔案安全性有一些基本要求。例如,他們希望主目錄是私人的並且只有目錄擁有者可以查看目錄內容。不過,因為 NetWare 核心協定 (NCP) 與 POSIX 檔案安全性模型 (請參閱節 21.2.1, 比較 Linux 與 NetWare 核心協定 (NCP) 檔案安全性模型) 的差異,在 POSIX 檔案系統上預設並非如此。

還好當您在 OES 2 中安裝 Linux 使用者管理 (LUM) 時,有提供將主目錄設為私人的選項。這個選項會自動提供 NetWare 管理員習慣看到的隱私權。但是該選項僅適用於新建立的主目錄,所以如果使存取權限一致對您而言是一項問題,需要瞭解和執行的還有很多。

使用本節中的資訊瞭解如何將 POSIX 目錄設定成更接近 NCP 模型。

17.4.1 管理存取權限

NCP 目錄預設為私人目錄。當您將使用者或群組指定為目錄或檔案的託管者時,那些託管者可以自動導覽至指定的區域,並運用您已在該層級或之下的層級所指定的存取權限。您可以使用不同的存取權限來指定符合目的所需的託管者數目。

另一方面,可以透過為在 Linux 系統上的每個檔案物件所定義的三組許可來存取傳統 Linux (POSIX) 目錄。這三組包括讀取 (r)、寫入 (w) 以及執行 (x) 許可,用於三種使用者類型:檔案擁有者、群組和其他使用者。在 OES 2 中的 Linux 核心也支援擴充此功能的存取控制清單 (ACL)。不過,ACL 不在這個討論範圍內。如需有關 ACL 的詳細資訊,請參閱《SLES 10 SP1 安裝和管理指南》中的 Linux 中的存取控制清單

Linux chown 指令可讓您將檔案擁有者與 (或) 群組變更為 LUM 使用者或是啟用 LUM 的群組。例如,chown -R user1 /home/user1 會變更 user1 主目錄和所有其子目錄與檔案的擁有者變更為 user1。如需詳細資訊,請參閱 OES 2 Linux 伺服器上的 chown 線上文件。

Linux chmod 指令提供非常簡單且快速的方法,調整三個使用者類型 (擁有者、群組以及其他 (所有使用者)) 的目錄與檔案存取權限。此指令最簡單的格式是使用三個數字,範圍包括從 0 到 7,以代表三個使用者類型的每個權限。第一個數字是設定擁有者的權限,第二個數字是設定群組的權限,而第三個數字則是設定所有其他使用者的權限。每個數字都代表單一群組的權限,如下所示:

數字

設定

二進位表示法

0

- - -

0 0 0

1

- - x

0 0 1

2

- w -

0 1 0

3

- w x

0 1 1

4

r - -

1 0 0

5

r - x

1 0 1

6

r w -

1 1 0

7

r w x

1 1 1

那些熟悉二進位數字系統的使用者會發現這是一個很容易記得每個數字所代表內容的方法。

例如,指令 chmod 777 /home 會將 /home 目錄的讀取、寫入和執行權限 (7) 授予擁有者、群組以及其他使用者,而 chmod 700 /home 則會將三個權限只授予目錄擁有者,至於群組及其他使用者則不會授予任何權限。chmod 750 /home 會將 rwx 權限授予擁有者、將 r-x 權限授予群組並且不會授予任何權限給其他使用者。

如需有關 chmod 指令的詳細資訊,請參閱 OES 2 Linux 伺服器上的 chmod 線上文件。

17.4.2 提供私人的工作目錄

若要將 NCP 目錄設為私人,就需要將單一使用者指定為託管者,並確定沒有非預期的使用者或群組擁有任何父目錄中的託管者權限。

若要在傳統 Linux 卷冊上提供私人工作區域:

  1. 請確定使用者是目錄擁有者。例如,您可以使用 chown 指令來變更擁有者 (使用者)。

    chown -R user: / path/ user_dir

    其中 user 是 eDirectory 使用者,path 是工作目錄的檔案路徑,而 user_dir 是工作目錄名稱。-R 選項會將指令遞迴地套用至所有的子目錄與檔案。

  2. 只授與使用者目錄的讀取、寫入和執行權限 (rwx --- ---)。例如,您可以使用如下所示的 chmod 指令:

    chmod -R 700 / path/ user_dir

    其中 path 是工作目錄的檔案路徑,而 user_dir 則是工作目錄名稱。

  3. 請檢查路徑中的每個父目錄往上到 root (/) 目錄為止,以確定所有的使用者 (在 Linux 中稱為 其他使用者) 都有每個目錄的讀取與執行權限 (r-x),如第三個許可群組所顯示 (. . . . . . r-x). (擁有者與群組許可以點 (.) 來表示,因為其設定是不相關的)。

    之所以會這樣的原因是因為在父目錄中目錄擁有者是「其他」使用者,而且需要能夠往下查看到自己私人目錄的路徑。

    因為 r-x 是 Linux 上大部分目錄的預設值,所以可能不需要變更許可。

17.4.3 提供群組工作區域

在 NCP 卷冊上,您可以將使用者指定給群組,然後授予群組託管者目錄的權限,以提供群組工作區域。另一種替代方案是,如果使用者需要工作區域中不同層級的存取權,您可以將每個使用者指定為託管者並只授予所需的權限。

若要在傳統 Linux 卷冊上提供群組工作區域:

  1. 使用 chown 指令以設定目錄的群組擁有權。例如,您可以輸入

    chown -R : group / path/ group_dir

    其中 group 是群組名稱,path 是工作區域的檔案路徑,而 group_dir 則是群組工作目錄。-R 選項會將動作套用至 group_dir 中的所有子目錄及檔案。

  2. 授予群組讀取、寫入和執行權限 (. . . rwx . . .)。(擁有者與其他許可是以點 (.) 來表示因為其設定是不相關的)。

    例如,您可以輸入

    chmod -R 770 / path/ group_dir

    其中 path 是工作區域的檔案路徑,而 group_dir 則是群組工作目錄。第二個 7 會將 rwx 授予群組。(此範例是假設目錄的擁有者也應該保留所有的權限。因此,第一個數字也是 7)。

  3. 請檢查路徑中的每個父目錄往上到 root (/) 目錄為止,以確定該群組擁有每個目錄中的讀取與執行權限 (r-x),如第二個許可群組所顯示 ( . . . r-x . . .).

    使用 chmod 指令為群組許可指定數字 5 在有需要的地方進行調整。有關更詳細的資訊,請參閱 管理存取權限.

17.4.4 提供公用工作區域

在 NCP 卷冊上,您可以將 [Public] 指定為託管者,然後將所需的目錄權限授予託管者,以提供公用工作區域。

對於工作區域本身,您將為擁有者、群組以及所有其他的使用者的許可,設定為讀取、寫入和執行權限 (rwx rwx rwx) (chmod 777)。

系統上的所有其他使用者也必須擁有路徑中每個父目錄一直到 Linux 系統根目錄的讀取與執行權限。這表示您將所有父目錄的許可設定為 rwx --- r-x。

若要在傳統 Linux 卷冊上提供公用工作區域:

  1. 使用 chown 指令指定所有權限 (rwx) 給其他使用者 (所有使用者)。例如,您可以輸入

    chmod -R 707 / path/ group_dir

    其中 path 是工作區域的檔案路徑,而 group_dir 則是群組工作目錄。第三個 7 會將 rwx 授予群組。(此範例是假設目錄的擁有者也應該保留所有的權限,而且該群組設定不相關)。

  2. 請檢查路徑中的每個父目錄往上到 root (/) 目錄為止,以確定所有使用者 (其他) 都擁有每個目錄的讀取與執行權限 (r-x),如第三個群組的許可所顯示 (. . . . . . rwx)。(擁有者與群組許可以點 (.) 來表示,因為其設定是不相關的)。

    使用 chmod 指令指定其他許可為數字 5,在有需要的地方進行調整。如需詳細資訊,請參閱本節開頭的 管理存取權限

17.4.5 設定權限承襲

使 POSIX 權限與 NCP 模型一致的最後步驟是在 NCP 組態檔案中設定「承襲的 POSIX 許可」的卷冊旗標,這樣在這些區域中建立的所有檔案與子目錄就會承襲與其父目錄相同的許可。如需指示,請參閱《OES 2:適用於 Linux 的 NCP 伺服器管理指南》中的 為 NCP 卷冊設定承襲的 POSIX 許可