為什麼權限是 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=4w=2x=1。三組權限各自加總:

  • rwxr-xr-- = 754
  • rw-r--r-- = 644
  • rwxrwxrwx = 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使用者家目錄
/rootroot 的家目錄
/boot開機核心與 GRUB 相關檔案
/lib函式庫與核心模組
/opt第三方軟體安裝位置

理解 FHS 能讓你在任何 Linux 系統上快速定位檔案。設定檔去 /etc、log 去 /var/log、使用者資料去 /home——這些約定俗成的規則是跨發行版通用的。

絕對路徑與相對路徑#

  • 絕對路徑:從根目錄 / 開始的完整路徑,如 /home/andrew/project
  • 相對路徑:相對於目前所在目錄的路徑,使用 .(目前目錄)和 ..(上層目錄)

在 Shell Script 和設定檔中,永遠使用絕對路徑。因為 script 的執行環境不一定與你手動操作時的工作目錄相同,使用相對路徑可能導致找不到檔案。