【Linux】檔案權限與擁有者管理:rwx、chmod、chown

【Linux】檔案權限與擁有者管理:rwx、chmod、chown

本篇重點

  • Owner 決定檔案擁有者的 Permission
  • Group 提供一個或多個 User 共用的 Permission
  • rwx 分別代表 Read、Write、Execute
  • 755644rwx 的八進位表示法
  • chmod 負責 Permission,chown 負責 Owner/Group,chgrp 專門修改 Group
  • whoamiidls -l 是定位權限問題時最基本的資訊來源

身份架構

Linux 中每個 User 具有 UID(User ID);Group 則是由一個或多個 User 組成的群組,具有 GID(Group ID)。

檔案本身則會記錄兩個重要的身分資訊:

  • Owner:擁有該檔案的 User。
  • Group:該檔案所屬的 Group。

範例

bash
1
2
ls -l
-rwxr-xr-- 1 allen developers 1200 Aug 25 16:00 deploy.sh

身份架構

健忘筆記

Linux 會依照存取者與檔案 Owner、Group 的關係選擇對應的權限類別

檔案權限

基礎權限由讀取(Read)、寫入(Write)、執行(Execute)三種屬性組成,簡稱為 rwx。透過八進位數字表示法,每種身份的權限可轉換為數值

權限代號數值一般檔案目錄
r4讀取檔案內容列出目錄內容
w2修改檔案內容建立、刪除、重新命名目錄內項目
x1執行檔案搜尋目錄,存取其中項目

將三種權限(Read、Write、Execute)各自的數值相加,即可組成常見的三位數權限代碼

範例

755 代表 Owner 具備 4+2+1=7(rwx),Group 與 Others 具備 4+1=5(r-x)。

三位數權限代碼

健忘筆記

需特別注意容易混淆的目錄 rwxx 在目錄上的定義為 search,也就是允許存取目錄中的項目,所以目錄的 w 通常需要搭配 x 才具有實際的檔案管理能力。

常用指令

ls -l

查看檔案的 Permission、Owner、Group 等資訊。

bash
1
2
ls -l
-rwxr-xr-- 1 allen developers 1200 Aug 25 16:00 deploy.sh

ls -l 資訊

File Type

符號類型說明範例
-Regular file資料檔案deploy.sh、config.yaml、image.jpg
dDirectory資料夾/home/user、/etc
lSymbolic link指向另一個檔案的捷徑/usr/bin/python → 某個 Python 執行檔

chmod

修改檔案或目錄的 Permission,可以使用 Numeric Mode 或是 Symbolic Mode

chmod MODE FILE

chmod -R 可以遞迴處理目錄及其內容,但對整個目錄使用時應特別確認目標範圍。

Numeric Mode 和 Symbolic Mode

Numeric Mode

bash
1
2
chmod 755 app.sh
# -rw-r--r-- app.sh → -rwxr-xr-x app.sh

Symbolic Mode

使用 ugoa 指定要修改的對象,搭配 +-= 來增加、移除或設定權限。

符號說明
uOwner(檔案擁有者)
gGroup(群組)
oOthers(其他使用者)
aAll(u + g + o
+增加權限
-移除權限
=設定為指定權限(會取代原有權限)
bash
1
2
3
4
5
chmod u+x app.sh # Owner 增加 execute
chmod g+w app.txt # Group 增加 write
chmod o-r file # Others 移除 read
chmod a+r file # 所有身份增加 read
chmod u=rw file # Owner 設為 read + write

健忘筆記

需特別注意 =+ 的差異:
chmod u=rw file 是代表 Owner 只保留 rw,原本的 x 會被移除
chmod u+rw file 是代表 Owner 增加 rw,原本的 x 不受影響

chown

修改檔案的 Owner,也可以同時修改 Group

bash
1
2
chown OWNER FILE
chown OWNER:GROUP FILE

chown -R 可以遞迴處理目錄及其內容,但對整個目錄使用時應特別確認目標範圍。

範例

bash
1
2
chown app app.conf
# root:root app.conf → app:root app.conf

同時修改 Owner 與 Group:

bash
1
2
chown app:developers app.conf
# root:root app.conf → app:developers app.conf

chgrp

只修改檔案的 Group,不修改 Owner

chgrp GROUP FILE

範例

bash
1
2
sudo chgrp developers deploy.sh
# root:root deploy.sh → root:developers deploy.sh

whoami

查看目前 Shell 是以哪個 User 進行操作

bash
1
2
whoami
user

id

查看目前 User 的 UID、主要 Group、GID,以及其他 Group

bash
1
2
id
uid=1000(user) gid=1000(user) groups=1000(user),1001(developers)

常見權限配置對照表

不同類型的檔案與目錄需對應嚴格程度不一的權限策略,以平衡系統功能與資訊安全:

應用情境建議權限安全考量與目的
一般程式碼檔案644確保 Owner 可讀寫,Group 與 Others 僅可讀取,防止原始碼遭竄改。
執行腳本 (Script)755允許系統或特定使用者執行,同時限制僅 Owner 能進行修改。
Web 專案根目錄755確保伺服器進程可存取與遍歷目錄,外部使用者無法隨意寫入檔案。
機敏設定檔 (.env)600僅限 Owner 讀寫,避免其他一般 User 直接檢視其中的資料庫密碼或 API 金鑰等。

結論

  • Owner 決定檔案擁有者的 Permission。
  • Group 提供一個或多個 User 共用的 Permission。
  • Others 適用於不符合 Owner 與 Group 條件的其他 User。
  • rwx 分別代表 Read、Write、Execute,但目錄中的 x 代表 Search 權限。
  • 755644rwx 的八進位表示法。
  • chmod 負責 Permission,chown 負責 Owner/Group,chgrp 專門修改 Group。
  • whoamiidls -l 是定位權限問題時最基本的資訊來源。

Linux 檔案權限管理的核心在於明確劃分 Owner、Group 與 Others 的 rwx 邊界,各個檔案應該實施最小權限原則(Least Privilege),這樣才能有效的確保應用程式穩定運行並降低遭受未授權存取的資安風險。

延伸閱讀

【Linux】檔案權限與擁有者管理:rwx、chmod、chown

https://forgetfulengineer.github.io/Backend/Linux/file-permissions-owner-management/

發表於

2026-09-18

更新於

2026-09-18

許可協議


你可能也想看

【Linux】解析資料重定向
【Linux】使用 less 查看檔案
【Tool】cron 表達式(排程時間)轉換

評論

複製完成