功能簡介
Chmod 權限計算機在 Unix/Linux 檔案權限的三種常見寫法之間互相換算:讀取、寫入、執行核取方塊,八進位數字(如 755),以及符號表示(如 rwxr-xr-x)。它也會同時產生八進位和符號兩種寫法的 chmod 指令,用文字說明每類使用者能做什麼,並支援 setuid、setgid 與黏滯位等特殊權限。所有計算都在瀏覽器中完成。
使用方法
- 為擁有者、群組和其他人勾選權限,或直接在輸入框輸入。輸入框支援八進位(
644、0644、4755)、ls -l風格字串(rw-r--r--,或前面帶檔案類型的-rw-r--r--),以及u=rwx,g=rx,o=、a+x之類的 chmod 運算式。 - 核取方塊和結果會隨輸入即時變化;勾選方塊時,輸入框中的權限也會以原本的寫法改寫。
- 在「選項」填寫檔名,需要套用到整個目錄樹時開啟「遞迴(-R)」,然後一鍵複製產生的指令。
常用權限
chmod 755 deploy.sh # rwxr-xr-x
chmod 644 index.html # rw-r--r--
chmod 600 ~/.ssh/id_ed25519 # rw-------
chmod 1777 /tmp # rwxrwxrwt
- 755:目錄、指令稿和程式。擁有者可以修改,所有人可以讀取和執行。
- 644:網頁、圖片等一般檔案。
- 600:SSH 私鑰、
.env等私密檔案,只有擁有者能讀取。別人可讀的私鑰會被 SSH 拒絕使用。 - 700 用於私人目錄;多人共用專案時常用 775/664。
數字怎麼來的
每類使用者對應一個八進位數字,由讀取 = 4、寫入 = 2、執行 = 1 相加而成。對目錄而言,讀取表示能列出其中的檔名,寫入表示能在裡面建立和刪除檔案,執行表示能進入目錄或存取其中的檔案。
可選的最高位存放特殊權限:setuid = 4、setgid = 2、黏滯位 = 1。符號表示中它們會取代執行位元上的字母:setuid 和 setgid 顯示為 s,黏滯位顯示為 t。大寫的 S 或 T 表示設定了特殊位元卻沒有執行權限,幾乎都是設定錯誤。
計算機也會顯示對應的 umask,也就是預設 umask 從 777 中移除的位元。umask 為 022 時,新目錄是 755,新檔案是 644。
常見問題
› chmod 755 是什麼意思?
三個數字分別對應擁有者、群組和其他人。7 = 讀取(4)+ 寫入(2)+ 執行(1),5 = 讀取 + 執行。所以 755 表示擁有者有全部權限,其他人可以讀取和執行,寫作 rwxr-xr-x,是指令稿和目錄最常用的權限。
› 644 和 755 有什麼不同?
644(rw-r--r--)沒有執行位元,適合 HTML、圖片、設定檔等一般檔案。755 為所有人加上執行權限,程式要執行、目錄要允許進入,都需要執行位元。
› 為什麼不建議用 chmod 777?
777 讓系統上每個使用者都能修改或取代這個檔案。在網頁伺服器上,代表任何被入侵的程序都能改寫你的程式碼。正確做法是用 chown 修正擁有者,目錄用 755、檔案用 644。
› setuid、setgid 和黏滯位是什麼?
它們是最前面的第四個八進位數字。setuid(4)讓程式以擁有者身分執行;setgid(2)讓程式以群組身分執行,用在目錄上時新檔案會繼承目錄的群組;黏滯位(1)讓使用者無法刪除共用目錄(如 /tmp)裡別人的檔案。在 ls 輸出中,它們以 s 和 t 顯示在執行位元的位置。