重點摘要
- 01三個數字分別為擁有者、群組和其他人設定權限,順序一定是這樣。
- 02每個數字都是讀取(4)、寫入(2)和執行(1)的總和——所以 7 = 全部三個、5 = 讀取 + 執行。
- 03755 是資料夾和程式的標準設定;644 是普通檔案的標準設定;777 幾乎總是錯誤的。
三個數字,三個對象
在 Linux 和 macOS 上,每個檔案和資料夾都為三個不同的人員群組設定權限。從左到右,755 這樣的模式中的三個數字分別適用於:擁有者(擁有該檔案的使用者)、群組(共享存取的一組使用者)和其他人(系統上的所有其他人)。順序永不改變——擁有者、群組、其他人。
所以 755 的意思是:給擁有者賦予 7 所描述的權限,給群組賦予 5 所描述的權限,給其他人賦予 5 所描述的權限。要理解整個系統,你只需要知道一個數字代表什麼。然後將相同的規則讀三遍。
每個數字如何組成:4、2、1
每個數字最多由三個值的總和組成。讀取存取價值 4、寫入存取價值 2、執行存取價值 1。將你想要的權限加在一起,就得到一個 0 到 7 之間的單一數字。因為 4、2 和 1 是 2 的冪,每種組合都產生唯一的總數——永遠沒有歧義。
以數字 7 為例:4(讀取)+ 2(寫入)+ 1(執行)= 7,所以 7 授予一切。數字 5 是 4(讀取)+ 1(執行)= 5,它授予讀取和執行但不能寫入。數字 6 是 4 + 2 = 6:讀取和寫入,但不能執行。數字 4 是唯讀。數字 0 不授予任何東西。
應用到 755,展開來是:擁有者得到 7(讀取、寫入、執行——完全控制),而群組和其他人各得到 5(讀取和執行,但無法改變檔案)。這正是你想要的程式或資料夾設定,其他人應該能夠使用但不能修改。
你實際上會用到的權限模式
幾乎所有日常工作都歸結為少數幾種模式。以下是每種模式的含義及其使用時機。
- 01755 = rwxr-xr-x — 擁有者可以讀、寫和執行;其他人可以讀和執行。資料夾、指令碼和可執行檔的預設值。
- 02644 = rw-r--r-- — 擁有者可以讀和寫;其他人只能讀。HTML、文字和影像等普通檔案的預設值。
- 03700 = rwx------ — 擁有者擁有完全控制;其他人甚至無法查看。用於私人資料夾和個人指令碼。
- 04600 = rw------- — 擁有者可以讀和寫;其他人被鎖定。適合私密金鑰和包含機密的組態檔案。
- 05775 = rwxrwxr-x — 擁有者和群組可以寫;其他人可以讀和執行。共享專案目錄的常見設定。
- 06777 = rwxrwxrwx — 任何人都可以做任何事。安全紅旗;幾乎永遠不是正確答案。
如何計算出 chmod 值
與其記住八進位,不如描述你想要的存取權限,讓計算器產生數字和 rwx 字串。
- 01
開啟 chmod 計算器
前往 Handytool 的 chmod 計算器。它完全在你的瀏覽器中執行。
- 02
勾選方塊
根據誰應該能做什麼,為擁有者、群組和其他人勾選讀取、寫入或執行。
- 03
讀取結果
工具並排顯示數字模式(如 755)和符號字串(如 rwxr-xr-x),所以你可以複製命令所需的任何一個。
- 04
複製命令
複製已準備好的 chmod 命令,貼到你的終端以套用權限。
一個細節:執行在不同環境下代表不同的含義
在檔案上,執行位代表「這可以作為程式運行」。在資料夾上,執行代表不同的含義:「你被允許進入此目錄並存取其內部內容」。這就是為什麼資料夾通常得到 755 而不是 644——沒有執行位,你可以列出資料夾的名稱但無法開啟它或到達其中的檔案。
這就是為什麼新上傳的充滿可讀檔案的資料夾仍然可能拋出「權限被拒絕」。這些檔案可能是 644 而且完全可讀,但如果資料夾本身對群組或其他人缺少執行位,任何人都無法進入其中。將目錄設定為 755,其內容設定為 644,大多數這類謎題就會消失。
chmod 常見問題
chmod 755 是什麼意思?
它給擁有者完整的讀、寫和執行權限(7),給群組和其他人僅讀和執行(5 和 5)。這是資料夾、指令碼和其他人應該能使用但不能改變的程式的標準模式。
755 和 644 有什麼區別?
755 包含執行位,所以檔案可以執行,資料夾可以進入。644 沒有執行位——對擁有者是讀和寫,對其他人是唯讀,這對普通資料檔案是正確的。
chmod 777 安全嗎?
很少。它讓每個使用者和進程讀取、修改和替換檔案,這在任何共享系統上都是安全風險。優先使用解決問題的最狹窄模式,通常是 755 或 644。
我如何讀取像 rwxr-xr-x 這樣的模式?
分三組讀,每組三個:rwx(擁有者)r-x(群組)r-x(其他人)。字母表示權限被授予,破折號表示未被授予。rwxr-xr-x 是 755 的符號形式。