iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0

在多使用者(Multi-user)與伺服器環境中,資安防線的第一道關卡就是「檔案權限」。如果權限設定過於寬鬆(例如直接給予 777 權限),任何未授權的使用者或惡意程式都能隨意修改、刪除你的設定檔或資料庫;反之,若權限設定過緊,服務(如 Nginx、MySQL)可能就會因為「Permission denied」而無法正常運作。
因此掌握 chmod 與 chown 這兩大權限控制的方法極為重要

拆解 10 位元權限字串(rwxr-xr-x)
當我們執行 ls -l 時,最左側會看到一串 10 個字元的符號(例如 -rw-r--r-- 或 drwxr-xr-x),這 10 個位置代表不同的意義:

位元位置 意義 常見範例 說明
第 1 位 檔案類型 -(普通檔案)d(目錄 Directory)l(連結檔 Link) 區分這是檔案還是資料夾。
第 2~4 位 Owner(擁有者權限) rwx 檔案建立者/擁有者擁有的權限。
第 5~7 位 Group(群組權限) r-x 同一群組成員擁有的權限。
第 8~10 位 Others(其他使用者權限) r-- 其他非擁有者且非群組成員的權限。

權限三大元素與二進位數字對照表
r (Read, 讀取)、w (Write, 寫入)、x (Execute, 執行) 在系統底層是以二進位表示,進而組合出我們常用的八進位數字表示法:

權限代碼 權限名稱 對應數值 對檔案的影響 對目錄的影響
r Read(讀取) 4 可以檢視檔案內容(如 cat) 可以列出目錄內的檔案清單(如 ls)
w Write(寫入) 2 可以修改檔案內容 可以新增、刪除、重新命名目錄內的檔案
x Execute(執行) 1 可以將檔案當成程式/腳本執行 可以 cd 進入該目錄

權限數字計算範例:
rwx = 4 + 2 + 1 = 7(完全控制)rw- = 4 + 2 + 0 = 6(可讀寫、不可執行)r-x = 4 + 0 + 1 = 5(可讀與執行、不可修改)r-- = 4 + 0 + 0 = 4(唯讀)
常用設定:chmod 755 script.sh(擁有者 7: rwx,群組 5: r-x,其他人 5: r-x)。

權限與擁有者修改工具:chmod 與 chown

指令 英文全稱 常用語法與參數 實務應用情境與範例
chmod Change Mode chmod 數字 檔案 或chmod u+x 檔案 修改檔案或目錄的讀寫執行權限。例:chmod +x deploy.sh(賦予執行權)
chown Change Owner chown 使用者:群組 檔案(加上 -R 可遞迴修改目錄) 變更檔案的擁有者與所屬群組。例:sudo chown -R www-data:www-data /var/www

權限提升與身份切換:sudo 與 su
在 Linux 中,最高管理者帳號稱為 root(俗稱 Superuser)。root 擁有系統的絕對控制權。

  • sudo (Superuser Do):以臨時管理者權限執行單一指令。
  • su - (Switch User):完全切換身份為 root 或其他使用者。

下圖為在 Multipass 虛擬機中,實際驗證 Linux 檔案權限修改(chmod)與執行權限變化的完整過程:
https://ithelp.ithome.com.tw/upload/images/20260905/20183847An3w47IomU.png
1.建立測試腳本與預設權限檢視:
建立 day04 資料夾並寫入測試腳本 test.sh。
執行 ls -l test.sh 查看預設權限為 -rw-rw-r--(代表沒有 x 執行權限)。
2.觸發權限拒絕(Permission denied):
直接執行 ./test.sh,系統提示 -bash: ./test.sh: Permission denied,驗證了缺少執行權限時無法執行程式。
3.賦予執行權限(chmod +x):
執行 chmod +x test.sh 為檔案加上執行權限,權限字串變更為 -rwxrwxr-x(檔名也變為綠色標示)。
再次執行 ./test.sh,成功在螢幕上印出 Hello Linux Day 04!。
4.使用數字表示法重置權限(chmod 644):
執行 chmod 644 test.sh 將權限精準設為 644(rw-r--r--)。
用 ls -l 確認權限已還原為擁有者可讀寫、其餘人僅可讀取,且剝奪了執行權限。


上一篇
Day 03:Terminal 檔案閱讀與 Log 快速搜尋術
系列文
從零開始的 Linux 維運與 Bash 自動化實戰 30 天4
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言