LinuxMastery By asdlkfj

LinuxMastery 04: 權限的數學題 chmod 與 chown

守護系統安全的閘門

Linux 的權限設計非常嚴謹,每個檔案都有三個身份的權限設定:User (擁有者)Group (群組)Others (其他人)。每個身份又可以擁有 Read (r)Write (w)Execute (x) 三種權限。理解這些數字背後的意義,是你能夠正確部署服務且不造成資安漏洞的關鍵。

核心指令詳解

  1. chmod (change mode)

    • 用途:修改檔案權限。
    • 數字表示法 (Octal)
      • r = 4
      • w = 2
      • x = 1
      • 例如:rwx = 4+2+1 = 7;rw- = 4+2 = 6;r-x = 4+1 = 5。
    • 常見組合
      • 777:所有人皆可讀寫執行 (極度危險,除非測試,否則少用)。
      • 755:擁有者全權,其他人可讀可執行 (常用於腳本或執行檔)。
      • 644:擁有者可讀寫,其他人唯讀 (常用於設定檔)。
      • 600:只有擁有者可讀寫 (常用於 SSH Key 或密碼檔)。
    • 範例
      # 讓腳本變成可執行
      chmod +x script.sh
      # 設定設定檔為唯讀保護
      chmod 644 config.yaml
      
  2. chown (change owner)

    • 用途:修改檔案擁有者與群組。
    • 語法chown user:group file
    • 範例
      # 將網頁目錄的擁有權交給 nginx 使用者
      chown -R nginx:nginx /var/www/html
      
      注意 -R 代表遞迴,會連同子目錄下的所有檔案一起修改。

實戰心法

當你的 Web Server 出現 "403 Forbidden" 錯誤時,90% 的機率是權限問題。首先檢查目錄是否具有 x 權限 (目錄需要 x 才能進入),接著檢查檔案是否具有 r 權限。不要為了方便直接給 777,這會讓駭客有機可乘,能夠在你的伺服器上植入後門。