🔒 Linux 權限管理教學:理解 rwx 與 chmod 實作
權限管理是 Linux 系統中最重要的安全機制之一。 每個檔案與資料夾都具有 讀取(read)、寫入(write)、執行(execute) 權限, 並且這些權限分別對應三種類型的使用者:擁有者(owner)、群組(group)、其他人(others)。
1️⃣ 檢視檔案權限
使用 ls -l 查看檔案的權限與擁有者資訊:
ls -l
範例輸出:
-rwxr-xr-- 1 user staff 2048 Oct 20 11:00 script.sh
欄位說明:
-:表示一般檔案(若為d則為資料夾)rwx:擁有者權限(read/write/execute)r-x:群組權限r--:其他使用者權限
以上例中,表示「擁有者可讀寫執行,群組可讀執行,其他人只能讀」。
2️⃣ 修改權限:chmod
可以使用符號方式或數字方式修改檔案權限。
🔹 符號方式
chmod u+x script.sh # 為擁有者新增執行權限 chmod g-w script.sh # 移除群組的寫入權限 chmod o=r file.txt # 設定其他使用者只能讀
🔹 數值方式
數值對應表:
r = 4 w = 2 x = 1
例如:
chmod 755 script.sh
代表:
- 擁有者:7 → rwx
- 群組:5 → r-x
- 其他人:5 → r-x
常見組合:
644→ 一般文字檔(rw-r--r--)755→ 可執行腳本(rwxr-xr-x)700→ 僅限擁有者使用(rwx------)
3️⃣ 修改擁有者與群組
使用 chown 與 chgrp 修改檔案擁有者或群組:
chown user1 file.txt # 修改檔案擁有者 chgrp staff file.txt # 修改檔案群組 chown user1:staff file.txt # 同時修改擁有者與群組
若要遞迴修改整個資料夾下的檔案,可加入 -R 參數:
sudo chown -R user1:staff /var/www/
4️⃣ 進階:特殊權限(SUID / SGID / Sticky Bit)
Linux 還有三種進階權限位:
- SUID (4):執行時以檔案擁有者權限運行。
- SGID (2):群組繼承權限。
- Sticky Bit (1):限制資料夾中檔案刪除權限(如 /tmp)。
設定範例:
chmod 4755 /usr/bin/testapp # 加上 SUID chmod 2755 /shared # 加上 SGID chmod 1755 /tmp/shared # 加上 Sticky Bit
📘 小結
- 🔹 檢查權限:
ls -l - 🔹 修改權限:
chmod - 🔹 修改擁有者:
chown/chgrp - 🔹 特殊權限:SUID、SGID、Sticky Bit
熟悉這些權限管理技巧,能確保系統安全與多使用者環境下的資源隔離。 無論是伺服器部署或日常維運,正確設定檔案權限都是關鍵步驟之一。
— WWFandy・系統與安全筆記
沒有留言:
張貼留言