6.3. Red Hat Enterprise Linux 的特定資訊

发表于:2007-06-08来源:作者:点击数: 标签:
6.3. Red Hat Enterprise Linux 的特定資訊 底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助管理者管理使用者帳號與相關資源。 6.3. Red Hat Enterprise Linux 的特定資訊 底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助

6.3. Red Hat Enterprise Linux 的特定資訊

底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助管理者管理使用者帳號與相關資源。

6.3. Red Hat Enterprise Linux 的特定資訊

底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助管理者管理使用者帳號與相關資源。

6.3.1. 使用者帳號、群組、以及存取權限

在 Red Hat Enterprise Linux 中,只要建立了使用者帳號,使用者就可以登入系統、執行任何系統允許存取的應用程式或檔案。Red Hat Enterprise Linux 會根據為使用者或群組設定的存取權限,決定是不是讓他們存取資源。

不管是檔案、目錄、或是應用程式,都有三種不同的存取權限,用來允許或禁止某種存取方式。在檔案列表時,每個獨立字元都代表一種存取權限。以下是這些字元的意義:

  • r — 表示某個特定的使用者群組可以讀取檔案。

  • w — 表示某個特定的使用者群組可以寫入檔案。

  • x — 表示某個特定的使用者群組可以執行檔案。

第四種字元(-)表示不允許存取。

而這三種存取權限,又分別及於三種使用者,分別為:

  • 擁有者(owner) — 擁有這檔案或應用程式的人。

  • 群組(group) — 擁有這檔案或應用程式的群組。

  • 所有人(everyone) — 所有能接觸系統的使用者。

如先前所述,您可以用 ls -l 指令,列出檔案的詳細資料,看出其存取權限。舉例來說,如果使用者 juan 建立了名為 foo 的可執行檔,輸入 ls -l foo 指令可能會顯示如下:

-rwxrwxr-x    1 juan     juan            0 Sep 26 12:25 foo

這檔案的存取權限列在最前面,以一組 rwx 開始。第一組表示的是檔案擁有者的權限 — 以本例來說,使用者 juan 有完整的存取權限,他可以讀、寫、執行檔案。第二組 rwx 則定義了他所屬群組的存取權限(一樣是完整的存取權限);而最後一組則記述了所有其他使用者的存取權限:其他使用者可以讀取、執行檔案,但不能以任何形式修改檔案。

有一點很重要,是您必須牢記在心的:不管 Red Hat Enterprise Linux 上每個應用程式的存取權限與使用者帳號為何,每個使用者執行同一支程式時,都是互不相關的。這意思是說,如果使用者 juan 執行了一個應用程式,那麼這程式只會在他的工作環境中運行。不過有些應用程式需要特別的存取等級,以完成特定任務;包括編輯系統設定或紀錄使用者行為的程式。為了這理由,我們就需要建立特別的存取權限。

Red Hat Enterprise Linux 中共有三種特別的存取權限,分別是:

  • setuid — 這權限只用在應用程式上,表示應用程式會以檔案擁有者的身份運行,而非執行該應用程式的使用者身份。它會以小寫 s 取代擁有者一欄的 x。如果檔案擁有者並沒有執行權限,那麼系統會以大寫 S 顯現,以反映這項事實。

  • setgid — 主要供應用程式使用。這權限表示應用程式會以擁有這檔案的群組身份來執行,而非執行這檔案的群組身份。

    如果套用到目錄上,那麼在這目錄中建立的所有檔案,其所有權會屬於擁有這目錄的群組,而非建立這檔案的群組。setgid 權限會以小寫 s 取代群組欄位中的 x。如果擁有這檔案或目錄的群組沒有執行權限,那麼系統會以大寫 S 反映出來。

  • sticky bit — 這位元主要用在目錄上,表示在這目錄中建立的檔案,只能由建立這檔案的人刪除。這權限會以小寫 t 取代所有人欄位中的 x。如果所有人並沒有執行權限,那麼系統會以大寫 T 反映這狀況。

    也因為這個原因,Red Hat Enterprise Linux 預設上會把 /tmp/ 目錄設上 sticky bit。

6.3.1.1. 使用者名稱與 UID;群組與 GID

在 Red Hat Enterprise Linux 中,使用者帳號跟群組名稱都是給人方便使用的;在系統內部使用的是數字型態的辨識方式。以使用者帳號來說,這數字稱為「UID」;而對群組來說,這數字稱為「GID」。要讓使用者存取使用者或群組資訊,系統有專門的程式將 UID / GID 翻譯成人類讀得懂的相對格式。

ANT">
重要重要
 

如果您打算在公司網路上分享檔案與資源,那麼千萬不能讓任何 UID 與 GID 重複。否則的話,不管您用了什麼存取控制的方法,最後都可能無法正常運作,因為這些方法都以 UID 與 GID 為基礎,而非使用者名稱與群組名稱。

更明確的說,如果檔案伺服器與使用者電腦上的 /etc/passwd/etc/group 檔案中,分別包含了不同 UID 與 GID,那麼設定不良的存取權限就會導致安全性漏洞。

舉例來說,如果使用者 juan 在桌上型電腦的 UID 是500,那麼 juan 在檔案伺服器上建立的檔案,其擁有者的 UID 就會紀錄為 500。但如果另一個使用者 bob 直接從檔案伺服器上登入(甚至是從其他電腦上登入),同時 bob 帳號的 UID 恰巧也是 500,那麼 bobjuan 的檔案,就有完整的存取權限,反之亦然。

因此,您一定要不盡任何代價的,避免 UID 與 GID 相衝突。

原文转自:http://www.ltesting.net