Linux 檔案權限入門

什麼是檔案權限?

在 Linux 中,每個檔案和目錄都有一組存取控制規則,決定「誰可以做什麼」。這套設計讓多使用者環境下的安全性成為可能——即使多人共用同一台伺服器,每個人的檔案也能受到保護。

讀懂 ls -l 的輸出

執行 ls -l 後,最左邊那一串字元就是權限資訊:

$ ls -l report.txt
-rw-r--r-- 1 alice developers 4096 May 20 09:00 report.txt

這串 -rw-r--r-- 分解如下:

位置字元意義
第 1 位-類型:-=普通檔案,d=目錄,l=符號連結
第 2-4 位rw-擁有者(alice)的權限:可讀(r)、可寫(w)、不可執行(-)
第 5-7 位r--群組(developers)的權限:只可讀
第 8-10 位r--其他人的權限:只可讀

r、w、x 各代表什麼?

符號名稱對檔案的意義對目錄的意義
rRead(讀取)可查看/讀取檔案內容可用 ls 列出目錄內容
wWrite(寫入)可修改/覆寫檔案內容可在目錄內新增/刪除/重新命名
xExecute(執行)可將檔案作為程式執行可進入目錄(cd 進去)
-無權限不允許對應操作不允許對應操作
ℹ️ 目錄的 x 權限很重要:就算你對目錄有 r 權限,如果沒有 x,你也無法進入(cd)或存取其中的檔案。

數字模式(八進位)

除了 rwx 符號,chmod 也接受數字格式。計算方式:r=4、w=2、x=1,三個數字的各位分別代表擁有者、群組、其他人。

數字二進位符號表示常見用途
7111rwx擁有者常用(如目錄)
6110rw-一般檔案的擁有者
5101r-x群組可讀可執行
4100r--只讀
0000---完全無權限

常見組合範例:

使用 chmod 修改權限

$ chmod 755 script.sh       # 數字模式
$ chmod u+x script.sh       # 符號模式:給擁有者加執行權
$ chmod -R 755 /var/www/    # -R 遞迴套用到目錄

符號模式的語法:誰(u/g/o/a) 操作(+/-/=) 權限(r/w/x)

使用 chown 變更擁有者

$ sudo chown alice report.txt         # 只改擁有者
$ sudo chown alice:developers file.txt # 同時改擁有者與群組
$ sudo chown -R www-data:www-data /var/www/html/ # 遞迴

常見的安全設定情境

情境建議設定指令
Web 伺服器根目錄755 / www-datachmod -R 755 /var/www/html && chown -R www-data:www-data /var/www/html
一般設定檔644chmod 644 config.yml
SSH 私鑰600chmod 600 ~/.ssh/id_rsa
.ssh 目錄700chmod 700 ~/.ssh
Shell 腳本755 或 700chmod 755 deploy.sh