1. 前言
什麼是 Linux 的「存取權限」?
在 Linux 及 Unix 系統中,妥善管理檔案與目錄的「存取權限(Permission)」非常重要。這不僅關係到系統安全,也是系統穩定運作不可或缺的因素。
很多人在終端機顯示檔案清單時,看到像 -rw-r--r--
這樣陌生的符號時,可能都會好奇:「這代表什麼意思?」
chmod 與 -rw-r–r– 的關係
這些符號,其實就是用來表示檔案存取權限的標記。而設定、變更這些權限時會用到的指令,就是 chmod
。也就是說,利用 chmod
給檔案賦予特定權限後,就會顯示像 -rw-r--r--
這樣的權限標記。
本文目的與適用讀者
本文將淺顯易懂地說明 -rw-r--r--
的具體意義,以及如何透過 chmod
設定與變更檔案權限,特別適合初學者閱讀。也會針對安全上的注意事項與實際操作範例作說明。
目標族群從剛開始接觸 Linux 的新手,到已經習慣終端機操作的中階用戶,希望協助大家建立實務上可用的基礎知識。
2. 什麼是 chmod?【基礎認識】
chmod 指令的用途
chmod
(可唸作「change mode」)是 Linux/Unix 系統中用來更改檔案及目錄存取權限(Permission)的指令。
透過這個指令,可以靈活地設定「誰可以進行什麼操作(讀取、寫入、執行)」。
正確設定檔案與目錄權限,不僅能確保系統安全,還能預防檔案共享或執行時發生問題,因此非常重要。
chmod 的基本語法
chmod [選項] [權限] 檔案名稱
舉例來說:
chmod 644 sample.txt
此指令會將 sample.txt
的權限設定如下:
-rw-r--r-- 1 user group 1234 Apr 13 20:00 sample.txt
- 擁有者(user):可讀寫(rw-)
- 群組(group):僅可讀(r–)
- 其他人(others):僅可讀(r–)
數字與符號兩種指定方式
chmod
支援下列兩種權限指定方式:
- 數字指定(數字模式)
- 例:
chmod 755 script.sh
- 以數字分別指定不同使用者類型的權限。
- 符號指定(符號模式)
- 例:
chmod u=rw,g=r,o=r file.txt
- 用 u(user)、g(group)、o(others)及 r(讀)、w(寫)、x(執行)來指定。
這兩種方式都可以設定相同權限。數字方式適合快速一鍵設定,符號方式適合細節調整,建議視需求選用。
chmod 與 chown 的差異
常被混淆的另一個指令是 chown
。
chmod
:變更檔案/目錄的存取權限chown
:變更檔案/目錄的「擁有者」或「群組」
兩者用途不同,建議清楚區分。
3. 拆解 -rw-r–r– 的意思
權限符號的結構
執行 ls -l
指令時,檔案資訊會像下面這樣顯示:
-rw-r--r-- 1 user group 1234 Apr 13 2025 sample.txt
最左邊的 -rw-r--r--
就是存取權限,理解這部分能幫助你判斷誰能執行哪些操作。
各部分的詳細說明
① 第一個字元:檔案類型
符號 | 說明 |
---|---|
- | 一般檔案 |
d | 目錄(資料夾) |
l | 符號連結 |
b | 區塊裝置 |
c | 字元裝置 |
像 -rw-r--r--
的第一個「-」就表示「一般檔案」。
② 第2至10個字元:存取權限(每3個字元一組,共三組)
- 擁有者(user) →
rw-
→ 可讀(r)寫(w),不可執行(x)。 - 群組(group) →
r--
→ 僅可讀,無法寫入或執行。 - 其他人(others) →
r--
→ 僅可讀。
這代表只有擁有者能編輯,其餘只能瀏覽。
對應的數值:644 的意思
同樣的權限,也可以用數字(八進位)來表示。
-rw-r--r--
對應的數值就是 644。
類型 | 符號 | 數值 | 說明 |
---|---|---|---|
擁有者 | rw- | 6 | 可讀+寫 |
群組 | r-- | 4 | 僅可讀 |
其他人 | r-- | 4 | 僅可讀 |
這些數字來自於:
- 讀(r)= 4
- 寫(w)= 2
- 執行(x)= 1
所以 rw-
= 4 + 2 = 6,r--
= 4。
為什麼常用這個權限?
-rw-r--r--
(644)經常用於公開檔案或網站靜態檔(如 HTML、CSS)。
原因如下:
- 只有擁有者能改內容,避免被亂改
- 其他人也能讀取,方便公開和分享
善用這設定,可兼顧安全與便利。
4. 用 chmod 設定 -rw-r–r–【實作教學】
用 chmod 指令變更權限
檔案或目錄權限可以自由用 chmod
來調整。要設定成 -rw-r--r--
,只要指定「644」即可。
數字方式設定
用 chmod 644 檔案名
:
chmod 644 document.txt
就會變成:
-rw-r--r-- 1 user group 1234 Apr 13 20:00 document.txt
- 擁有者:可讀寫(rw-)
- 群組:僅可讀(r–)
- 其他人:僅可讀(r–)
符號方式(符號模式)設定
若要更彈性調整,可以用符號指定:
chmod u=rw,g=r,o=r document.txt
各部分代表:
u=rw
→ 擁有者可讀寫g=r
→ 群組僅可讀o=r
→ 其他人僅可讀
與數字「644」效果完全一樣。
套用在目錄時的注意事項
目錄若沒「執行權(x)」就不能進入,這和檔案不同。
若像這樣設定:
chmod 644 my_folder
雖然可以讀目錄清單,卻不能進入目錄。
正確作法:
chmod 755 my_folder
- 擁有者:可讀寫執行
- 群組/其他人:可讀執行
這樣其他用戶才能查看資料夾內容。
遞迴變更權限:-R
選項
如果想同時變更大量檔案/目錄,可以加 -R
(recursive 遞迴)選項:
chmod -R 644 my_folder
這會讓 my_folder
下所有檔案都變成 644,但有注意事項(詳見後文)。
5. 用 ls -l 指令查看權限
如何查看檔案權限?
查詢檔案或目錄權限時,推薦使用 Linux 常用的 ls -l
指令(長列表格式),可顯示權限、擁有者、檔案大小、最後修改日期等資訊。
基本用法
ls -l
會顯示:
-rw-r--r-- 1 naoya devs 2048 Apr 13 20:00 index.html
各項意義:
項目 | 說明 |
---|---|
-rw-r--r-- | 權限(存取權限) |
1 | 硬連結數量(通常為1) |
naoya | 擁有者(user) |
devs | 群組(group) |
2048 | 檔案大小(位元組) |
Apr 13 20:00 | 最後修改時間 |
index.html | 檔名 |
權限欄的解讀方式
最關鍵的 -rw-r--r--
可以這樣拆解:
- 第1字元:檔案類型
-
:一般檔案d
:目錄l
:符號連結- 剩餘9字元:權限(每3個一組)
- 擁有者(user):
rw-
→ 可讀+寫 - 群組(group):
r--
→ 僅可讀 - 其他人(others):
r--
→ 僅可讀
也就是「只有擁有者可編輯,其餘只能讀取」。
只查單一檔案
若只想查某個檔案:
ls -l index.html
這樣只會顯示該檔案權限。目錄多檔案時很方便。
查看目錄權限也一樣
查目錄時,也能用 ls -l
。若只看目錄本身權限,用 -d
:
ls -ld my_folder
這只顯示 my_folder
的權限(不會列出裡面的檔案)。
安全管理權限的小技巧
建議用 chmod
設定後,必用 ls -l
確認。
若設定錯誤會造成安全漏洞或異常行為。
也可搭配管線一次查多檔案:
ls -l | grep '.sh'
只顯示副檔名為 .sh(shell script)的檔案。
6. 用 GUI 工具查詢/修改權限(適合新手)
不擅長指令行也有方法
雖然 Linux 多用終端機,但對新手來說,「全黑畫面好難」、「怕打錯指令」也是常見困擾。
這時也能利用GUI(圖形化介面)來查詢與修改檔案權限。
用 Ubuntu 的檔案管理器(Nautilus)
多數 Linux 發行版都內建「Nautilus」檔案總管,就像 Windows 的檔案總管。
查詢步驟:
- 右鍵點選檔案或目錄
- 選「內容(Properties)」
- 開啟「權限」分頁(不同版本可能顯示為「Permission」)
這裡可以:
- 查看/更改擁有者和群組(須有管理員權限)
- 切換讀、寫、執行許可
- 立即反映權限設定
GUI 顯示為「唯讀」、「可讀寫」等,較不易出錯,適合新手。
WinSCP(Windows SFTP 用戶端)
若從 Windows 遠端連線 Linux,可用 WinSCP 以圖形介面設定權限。
操作步驟:
- 用 WinSCP 連上伺服器
- 右鍵檔案 →「內容」
- 在「權限(Permissions)」調整數值(如 644)或勾選方格
- 按「OK」儲存
優點:
- 可用數字/符號檢查權限
- 可對整個目錄遞迴修改
注意:
- 部分系統檔案需 root 權限,否則無法修改
WinSCP is a popular free file manager for Windows supporting…

FileZilla(跨平台 SFTP 工具)
Mac、Linux 也能用 FileZilla 來變更權限。
步驟:
- 連上伺服器,右鍵檔案
- 選「檔案權限(File Permissions)」
- 勾選權限、填入數字,按「OK」即可
GUI 優缺點
優點:
- 新手較不易犯錯
- 設定結果一目了然
- 不懂指令也能操作
缺點:
- 有時部分權限無法用 GUI 設定(如系統檔)
- 建議還是用
ls -l
等指令檢查結果
FileZilla - The free FTP solution for both client and server…
7. chmod 設定的注意事項與常見問題排解
設定正確卻無法運作?可能的原因
用 chmod
設定後,若遇到問題,多半是權限誤設或誤解造成。
這裡介紹常見問題與處理方式。
Permission denied 錯誤的原因與解決法
狀況:
bash: ./script.sh: Permission denied
原因:
- 執行檔缺乏「執行權(x)」
解決法:
chmod +x script.sh
或直接:
chmod 755 script.sh
只給讀/寫權不夠,執行還需「x」權。
目錄沒執行權就無法進入
若目錄設 chmod 644
,可能會無法存取內容。
說明:
- 目錄的「x」權代表能否進入(cd)或查看內容
範例:
chmod 644 my_folder
ls my_folder
→ 會報錯、無法顯示內容。
正解:
chmod 755 my_folder
遞迴(-R)設定的陷阱
chmod -R
會讓所有檔案、資料夾套用同一權限,可能產生問題。
常見錯誤:
chmod -R 644 /var/www/html
→ 目錄失去執行權,無法進入。
正確作法:
# 資料夾設 755
find /var/www/html -type d -exec chmod 755 {} ;
# 檔案設 644
find /var/www/html -type f -exec chmod 644 {} ;
擁有者/群組權限設錯
不只 chmod
,也要注意檔案「擁有者」和「群組」設定。
例如 apache
用戶必須能讀檔案,但若只有一般用戶有權限,網站就無法正確顯示。
解決:
- 變更擁有者:
sudo chown www-data:www-data index.html
- 調整群組權限:
chmod 640 index.html
(若群組正確)
777 很危險!過度開放權限的風險
有些人會想「設 777 就一定能用」,但這極度危險。
原因:
- 任何人都能讀、寫、執行,超高風險
- 極易被竄改、植入惡意腳本
建議基本規則:
- 檔案:644 或 600
- 目錄:755 或 700
- 腳本/可執行檔:755(視需要)
8. 實際案例與常見應用場景
chmod 權限設定的實戰應用
前述 chmod
及 -rw-r--r--
權限,實際在伺服器維運、開發現場非常常用。
以下用三個代表性案例說明如何應用:
1. 網頁伺服器 HTML 檔案管理
場景:
以 Apache 或 Nginx 發布 HTML 網頁時,常設 -rw-r--r--
(644)。
chmod 644 index.html
理由:
- 管理者需編輯 → 給寫入權
- Web 伺服器只需讀取 → 給讀取權
- 其他人不須寫入
這樣可最小權限、安全公開網頁內容。
2. 腳本檔加上執行權限
場景:
寫了一個 shell script backup.sh
,執行時遇到「Permission denied」。
chmod 755 backup.sh
意義:
- 擁有者:讀、寫、執行(rwx)
- 群組/其他人:讀、執行(rx)
這樣可讓其他人執行,但只能擁有者編輯。
3. 機密檔案限制讀取
場景:
要儲存 API 金鑰等機密資料,不希望其他人能讀。
chmod 600 secrets.txt
說明:
- 只有擁有者可讀寫(rw-)
- 群組/其他人都無法存取(—)
高安全性機密資料建議設 600 或 400。
4. 共享目錄的安全設定
場景:
多位開發者需共用 shared_folder
。
chmod 770 shared_folder
說明:
- 擁有者、群組:全權(rwx)
- 其他人:無法存取(—)
搭配 chgrp 可靈活控管共享對象。
5. 設定錯誤導致的問題與解法
場景:
誤設 chmod -R 777 .
,導致所有檔案全開。
預防法:
- 用
find
依檔案/目錄分別設權限 - 變更前先
ls -l
檢查 - 可在測試環境先驗證
9. 常見問題(FAQ)
Q1. chmod 644
與 -rw-r--r--
有何不同?
A. 只是表示方式不同,意義完全一樣。
chmod 644
:數字方式設定權限-rw-r--r--
:用ls -l
查詢時的符號顯示
都表示「擁有者可讀寫,其餘僅可讀」。
Q2. 檔案沒執行權會怎樣?
A. 執行腳本、可執行檔時會發生錯誤。
例如 .sh
、.py
等,沒「x」權時會出現:
bash: ./script.sh: Permission denied
解決:
chmod +x script.sh
Q3. 目錄設成 644
可以嗎?
A. 通常不建議。
目錄必須有「執行權(x)」,否則無法進入。
建議設定:
chmod 755 目錄名稱
Q4. chmod -R
很方便,有什麼注意事項?
A. 檔案與目錄會被設同一權限,可能導致問題。
例如:
chmod -R 644 my_project/
→ 目錄失去執行權,無法進入。
安全建議:
find my_project/ -type d -exec chmod 755 {} ;
find my_project/ -type f -exec chmod 644 {} ;
Q5. 總是 Permission denied,怎麼辦?
A. 請檢查以下:
- 執行檔缺少執行權
- 非擁有者卻想寫入
- 目錄無執行權
- 當前用戶沒有 sudo 權限
請搭配 ls -l
、whoami
查明權限與用戶。
Q6. 想分享檔案給別人看,但不讓對方寫入怎麼辦?
A. 設為「644」或「444」,只有擁有者可寫。
chmod 644 share.txt
- 644:其他人僅可讀
- 444:所有人都只能讀
可依檔案屬性、公開範圍彈性選用。
Q7. 權限設錯怎麼還原?
A. 若沒預先紀錄,請參考同專案下正確檔案的權限來還原。
ls -l /path/to/正確檔案
比對後再用 chmod
設定,建議平時記錄好初始狀態。
10. 總結
理解 chmod 與權限管理的意義
本文詳細介紹了 Linux/Unix 常用的 chmod
指令與權限符號 -rw-r--r--
的意義。
這些知識不僅是技術,更關係到系統安全、運維效率、檔案管理的精確性。
回顧本篇重點
chmod
是調整檔案/目錄權限的指令-rw-r--r--
代表「擁有者可讀寫,其餘僅可讀」- 數值「644」與符號「-rw-r–r–」意義一致
- 權限設定有數字、符號兩種方式
- 用
ls -l
查目前權限 - GUI 工具(Nautilus、WinSCP、FileZilla)也可設定查詢
- chmod 設錯易出現 Permission denied,需小心
- 常用權限背後都有明確理由
權限設定沒有「萬用解」
最重要的是,沒有一種設定能通用所有情境。
請根據用途、共享對象、所需安全級別,選擇最小且適當的權限。
給權限新手的建議
一開始或許覺得難,但只要熟悉 chmod
與權限概念,
可大幅降低風險,打造安全又有效率的系統。
記得:「誰、要做什麼、能存取到哪?」這三點是權限設定最重要的思維。