WordPress 檔案權限教學:安全設定目錄、檔案與 wp-config.php

WordPress 檔案權限與 wp-config.php 安全設定示意圖

WordPress 檔案權限決定網站帳戶、群組及其他程序可否讀取、修改或執行檔案。權限太嚴會令更新、上傳和快取失敗;太寬則可能讓其他帳戶或被入侵的程序改寫網站。正確做法要同時核對擁有者、群組、伺服器執行方式和實際需要。

先建立完整備份

修改前備份資料庫、`wp-content`、`wp-config.php`、`.htaccess` 及伺服器設定。記錄現有擁有者與權限,確保改錯後能逐項還原,而不是依印象猜測原值。

理解讀取、寫入與執行

讀取允許查看內容,寫入允許修改,目錄的執行權限則關乎能否進入及存取其項目。數字權限分別套用於擁有者、群組和其他使用者,不要只背誦一組數字。

先核對檔案擁有者

大量更新失敗常由 ownership 錯誤引起,不一定是權限不足。確認部署帳戶、PHP 或網站伺服器程序所用帳戶及群組,再依主機架構設定;共享主機與自管 VPS 可能完全不同。

使用常見安全基準

一般安裝常以目錄 `755`、檔案 `644` 作起點,讓擁有者可寫而其他帳戶只能讀取。這是常見基準而非所有主機的固定答案,受管主機或群組寫入架構可能要求不同設定。

避免使用 777

`777` 令所有使用者都可讀、寫及執行,會大幅擴大風險。遇到上傳或更新問題時,應找出真正需要寫入的目錄、擁有者或 PHP 執行帳戶,不要把整個網站遞迴開放。

特別保護 wp-config.php

`wp-config.php` 包含資料庫連線和安全設定,應只讓必要帳戶讀取。部分環境可使用比一般檔案更嚴格的權限,但改動後必須確認 PHP 仍能讀取,否則網站會立即失效。

檢查 wp-content 寫入需求

媒體上傳、外掛更新、快取及備份通常需要在 `wp-content` 內特定目錄寫入。只開放 `uploads`、快取或備份工具真正需要的位置,不應讓所有外掛和主題檔案長期可被網站程序改寫。

分開處理 plugins 與 themes

正式環境若由部署流程管理程式碼,可讓外掛及主題只由部署帳戶寫入。若使用後台自動更新,則要依主機要求提供有限寫入權,並配合更新紀錄和完整性監察。

小心處理 .htaccess

使用 Apache 永久連結時,WordPress 可能需要更新 `.htaccess`。可在修改永久連結期間提供必要權限,寫入成功後再收緊;不要為方便而讓它永久對所有帳戶可寫。

不要混用檔案與目錄模式

目錄需要執行權限才能進入,普通檔案通常不需要。把同一權限遞迴套用到所有項目,可能令 PHP、圖片或設定檔多出不必要的執行權,或令目錄無法瀏覽。

先在單一位置測試

由出錯的目錄或檔案開始,逐級找出最低可用權限。測試媒體上傳、外掛更新、永久連結和快取,再決定是否擴大修改範圍,避免一次改動整個網站。

透過安全通道修改

使用主機檔案管理器、SFTP 或 SSH,不要使用未加密 FTP 傳送管理憑證。執行遞迴命令前先確認實際路徑,避免在錯誤網站或上層目錄套用權限。

配合停用後台檔案編輯

若網站不需要在後台直接修改外掛或主題,可停用內建檔案編輯器,降低管理員帳戶被接管後植入程式碼的機會。程式修改應經版本控制、測試和部署流程。

檢查更新後是否被改回

主機遷移、還原、部署或解壓縮可能改變擁有者與權限。每次大型操作後抽查根目錄、`wp-content`、設定檔及新建立檔案,並監察異常可寫項目。

建立權限維護紀錄

記錄主機架構、擁有者、基準權限、例外目錄、修改原因和復原方法。若必須暫時放寬權限,加入截止時間和覆核人,完成工作後立即恢復。

參考資料

[WordPress 官方:Changing File Permissions](https://developer.wordpress.org/advanced-administration/server/file-permissions/)

[WordPress 官方:Hardening WordPress](https://developer.wordpress.org/advanced-administration/security/hardening/)

«
»
  • WordPress Navigation Block 主選單、子選單與手機導覽示意圖
    July 27, 2026
  • WordPress 留言審核、垃圾訊息封鎖與通知設定示意圖
    July 27, 2026
  • WooCommerce 訂單狀態由待付款到已完成的工作流程示意圖
    July 27, 2026
  • Cloudflare Rate Limiting 保護 WordPress 登入與 API 請求示意圖
    July 27, 2026
  • WooCommerce 付款閘道選擇、測試模式與正式收款示意圖
    July 27, 2026
  • WordPress Redis 與 Memcached 持久物件快取設定及清理示意圖
    July 27, 2026
  • WooCommerce 全額與部分退款、庫存回補及付款核對示意圖
    July 27, 2026
  • WordPress Site Health 網站健康檢查與問題排查示意圖
    July 27, 2026
  • WordPress Navigation Block 主選單、子選單與手機導覽示意圖
    July 27, 2026
  • WordPress 留言審核、垃圾訊息封鎖與通知設定示意圖
    July 27, 2026
  • WooCommerce 訂單狀態由待付款到已完成的工作流程示意圖
    July 27, 2026
  • Cloudflare Rate Limiting 保護 WordPress 登入與 API 請求示意圖
    July 27, 2026
  • WooCommerce 付款閘道選擇、測試模式與正式收款示意圖
    July 27, 2026
  • WordPress Redis 與 Memcached 持久物件快取設定及清理示意圖
    July 27, 2026
  • WooCommerce 全額與部分退款、庫存回補及付款核對示意圖
    July 27, 2026
  • WordPress Site Health 網站健康檢查與問題排查示意圖
    July 27, 2026