自由學習的風

幽夢影 張潮 少年讀書,如隙中窺月;中年讀書,如庭中望月;老年讀書,如臺上玩月。皆以閱歷之淺深,為所得之淺深耳。

Linux:批次設定檔案/目錄 權限及擁有者

2026年8月17日 星期一

在管理 Linux 伺服器(特別是架設 WordPress 或網站)時,常常會遇到檔案權限混亂,導致網頁出現「403 Forbidden」或是無法上傳圖片的狀況。

如果直接使用 chmod -R 755 *,會不小心把不需要執行的普通檔案也變成可執行檔,造成安全漏洞。最標準的做法是:將目錄設為 755,檔案設為 644。本文分享如何利用 find 指令高效完成權限與擁有者的批次設定。


一、 核心指令:分開設定目錄與檔案權限

請將指令中的 /your/path 替換成你實際的資料夾路徑(例如:/var/www/html)。如果你已經在該目錄下,可以直接用 . 代替路徑。

1. 將所有目錄(資料夾)設為 755

sudo find /your/path -type d -exec chmod 755 {} +
  • -type d:指定只尋找「目錄(Directory)」。
  • 755 權限:擁有者可讀寫執行(rwx),其他人可讀取與進入(r-x)。資料夾必須有執行權限(x)大家才能進得去。

2. 將所有檔案設為 644

sudo find /your/path -type f -exec chmod 644 {} +
  • -type f:指定只尋找「一般檔案(File)」。
  • 644 權限:擁有者可讀寫(rw-),其他人只能讀取(r--),大家都沒有執行權限,確保系統安全。

二、 進階補強:變更檔案擁有者(chown)

調整完權限後,如果網站還是無法運作,通常是「擁有者(Owner)」錯了。例如 Apache 或 Nginx 網頁伺服器通常使用 www-data 這個用戶。

1. 變更整個資料夾的擁有者與群組

sudo chown -R www-data:www-data /your/path
  • -R:代表遞迴(Recursive),會連同子目錄、檔案一起修改。
  • www-data:www-data:冒號前面是「新用戶」,後面是「新群組」。

2. 唯獨針對「特定舊用戶」的檔案進行轉移

如果你只想把原本屬於 olduser 的檔案找出來並改成 newuser,可以結合 find 指令:

sudo find /your/path -user olduser -exec chown newuser {} +

💡 關鍵語法解析:末尾的 {} + 是什麼意思?

這是在 Linux 中提升效能的進階技巧。它們必須搭配 -exec 參數一起看:

  • {} (佔位符):代表 find 實際找到的每一個檔案路徑。
  • + (批次打包):通知電腦把所有找到的檔案「打包成一長列」,只呼叫 1 次 chmodchown 指令來處理。

比起傳統使用 \; 結尾(找到 1000 個檔案就會執行指令 1000 次),使用 + 的速度會快上數十倍,非常適合在檔案量龐大的伺服器上使用!

0 意見:

張貼留言