Product SiteDocumentation Site

9.3. 管理權限

Linux 是多使用者系統,必須以授權系統控制對檔案與資料夾的合法操作,包括所有的系統資源與設備 (在 Unix 系統裡,任何設備都以檔案或資料夾表示)。此原則適用於所有的 Unix 系統,不過多提醒一次總是好的,尤其碰到有趣相關的不明使用情況。
每個檔案與資料夾都有三組不同權限的使用者:
三種權利可以組合成:
以檔案來說,其權利較容易理解:讀取就是允許讀取其內容 (包括複製)、寫入就是允許改變它、而執行就是跑它 (檔案本身必須是程式)。
資料夾的處理方式略有不同。讀取其款目 (檔案及資料夾)、寫入包括新增與刪除檔案、而執行則是進入它 (尤其是使用 cd 命令)。進入資料夾而不必有讀取權限,執行已知的檔名,若不知其正確的名稱,則無法執行。
三個命令控制檔案的授權:
有兩種方法表示權限。其中,符號表示最容易理解和記憶。它使用前述的符號。可以經由 (u/g/o),經過等於 ( =)、加 (+)、或減 (-) 設定每種使用者的權限類型。因此,u=rwx,g+rw,o-r 格式賦予擁有者讀、寫與執行的權限,對群組的擁有者給予讀寫的權限,以及移除其他使用者讀取的權限。命令中未新增或減少的權限不變。字母 a 指所有的英文字 “all”,涵蓋三種類型的使用者,所以 a=rx 給予三種使用者相同的權限 (讀與執行,但沒有寫)。
每個權限都可對應一個數值 (8 進位):4 讀、2 寫、1 執行。這些數值可以加起來表示其權限的組合。每個值依序置於不同使用者的類型之後 (擁有者、群組、其他)。
例如,chmod 754 file 命令將設定以下的權限:擁有者的讀、寫與執行 (因為 7 = 4 + 2 + 1) 權限;群組的讀與執行 (因為 5 = 4 + 1) 權限;其他的讀權限。0 就是沒有權限;因此 chmod 600 file 命令讓擁有者的讀/寫權限,其他的使用者沒有任何權限。最常用的權限組合是 755 供可執行檔案與資料夾,以及 644 供資料檔案。
還可以設定特別的權限,以同權的原則在原數值之前加入第四個數值,setuidsetgidsticky 的位元數分別是 4、2 和 1。chmod 4754 設置 setuid 前述的位元權限。
八進位標記祗適用於對檔案的一次性設定所有權限;不能以它加入新的權限,如群組擁有者的讀取,因為必須把現在的權限與計算新的數值。