為什麼權限是 Linux 安全的基石#
Linux 是多人多工系統,多個使用者共享同一套檔案系統。檔案權限機制確保每個使用者只能存取被授權的資源。這不只是「誰能讀誰不能讀」的問題——它是整個系統安全模型的根基,從普通檔案到系統服務,一切都受權限控制。
使用者、群組與其他人#
Linux 的權限模型建立在三個身份層級上:
- 擁有者(Owner):檔案的建立者,對檔案有最高控制權
- 群組(Group):一組使用者的集合,方便團隊共享資源
- 其他人(Others):既非擁有者、也不屬於該群組的所有使用者
每個使用者必須屬於至少一個群組(初始群組),也可以同時屬於多個群組。新建立的檔案會自動歸屬於使用者的有效群組。
身份資訊的儲存位置#
/etc/passwd:帳號名稱、UID、GID、家目錄、預設 Shell/etc/shadow:加密後的密碼與密碼策略/etc/group:群組名稱與成員對應
rwx 權限的意義#
每個檔案都有三組 rwx 權限,分別對應擁有者、群組、其他人:
- r(read):讀取
- w(write):寫入/修改
- x(execute):執行
對檔案的意義#
| 權限 | 效果 |
|---|---|
| r | 可以讀取檔案內容 |
| w | 可以修改檔案內容(但不能刪除檔案,刪除取決於目錄權限) |
| x | 可以執行檔案(若為 script 或二進位程式) |
對目錄的意義#
| 權限 | 效果 |
|---|---|
| r | 可以列出目錄中的檔案名稱 |
| w | 可以在目錄中建立、刪除、更名檔案 |
| x | 可以進入(cd)該目錄,也是存取目錄內檔案的前提條件 |
目錄的 x 權限是最容易被忽略卻最關鍵的。沒有目錄的 x 權限,即使檔案本身有 r 權限,你也無法讀取它。因為「進入目錄」這個動作就需要 x。這就像一扇門——沒有鑰匙(x)進門,門裡的東西(r/w)都碰不到。
一個常見的錯誤觀念:「有 w 權限就能刪除檔案」。實際上,刪除檔案是修改目錄的操作,需要的是目錄的 w 權限,而不是檔案的 w 權限。
權限的數字表示法#
每個權限對應一個數字:r=4、w=2、x=1。三組權限各自加總:
rwxr-xr--=754rw-r--r--=644rwxrwxrwx=777
檔案種類#
Linux 的檔案不只有一般檔案和目錄,還包括:
- 一般檔案(-):文字檔、二進位檔、資料檔
- 目錄(d)
- 連結檔(l):類似 Windows 的捷徑
- 區塊裝置檔(b):如硬碟
- 字元裝置檔(c):如鍵盤、終端機
- Socket(s):行程間通訊
- FIFO/Pipe(p):先進先出管道
FHS 目錄配置標準#
**FHS(Filesystem Hierarchy Standard)**定義了 Linux 目錄結構的標準配置,確保不同發行版之間有一致的檔案放置邏輯。
三個核心目錄#
/(根目錄):與開機相關的檔案必須在此,應盡量精簡/usr:系統軟體資源(Unix Software Resource),類似 Windows 的Program Files/var:變動性資料(log、cache、mail、資料庫)
重要目錄一覽#
| 目錄 | 用途 |
|---|---|
/bin | 所有使用者都能使用的基本指令 |
/sbin | 系統管理員使用的指令 |
/etc | 系統設定檔 |
/dev | 裝置檔案 |
/proc | 虛擬檔案系統,反映核心與程序狀態 |
/tmp | 暫存檔案,任何人都可寫入 |
/home | 使用者家目錄 |
/root | root 的家目錄 |
/boot | 開機核心與 GRUB 相關檔案 |
/lib | 函式庫與核心模組 |
/opt | 第三方軟體安裝位置 |
理解 FHS 能讓你在任何 Linux 系統上快速定位檔案。設定檔去
/etc、log 去/var/log、使用者資料去/home——這些約定俗成的規則是跨發行版通用的。
絕對路徑與相對路徑#
- 絕對路徑:從根目錄
/開始的完整路徑,如/home/andrew/project - 相對路徑:相對於目前所在目錄的路徑,使用
.(目前目錄)和..(上層目錄)
在 Shell Script 和設定檔中,永遠使用絕對路徑。因為 script 的執行環境不一定與你手動操作時的工作目錄相同,使用相對路徑可能導致找不到檔案。