底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助管理者管理使用者帳號與相關資源。
底下章節描述了多種 Red Hat Enterprise Linux 的特定功能,能幫助管理者管理使用者帳號與相關資源。
在 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。
在 Red Hat Enterprise Linux 中,使用者帳號跟群組名稱都是給人方便使用的;在系統內部使用的是數字型態的辨識方式。以使用者帳號來說,這數字稱為「UID」;而對群組來說,這數字稱為「GID」。要讓使用者存取使用者或群組資訊,系統有專門的程式將 UID / GID 翻譯成人類讀得懂的相對格式。
![]() | 重要 |
|---|---|
如果您打算在公司網路上分享檔案與資源,那麼千萬不能讓任何 UID 與 GID 重複。否則的話,不管您用了什麼存取控制的方法,最後都可能無法正常運作,因為這些方法都以 UID 與 GID 為基礎,而非使用者名稱與群組名稱。 更明確的說,如果檔案伺服器與使用者電腦上的 /etc/passwd 與 /etc/group 檔案中,分別包含了不同 UID 與 GID,那麼設定不良的存取權限就會導致安全性漏洞。 舉例來說,如果使用者 juan 在桌上型電腦的 UID 是500,那麼 juan 在檔案伺服器上建立的檔案,其擁有者的 UID 就會紀錄為 500。但如果另一個使用者 bob 直接從檔案伺服器上登入(甚至是從其他電腦上登入),同時 bob 帳號的 UID 恰巧也是 500,那麼 bob 對 juan 的檔案,就有完整的存取權限,反之亦然。 因此,您一定要不盡任何代價的,避免 UID 與 GID 相衝突。 |