WordPressサイトを安全かつ安定して運用するために欠かせないのが、サーバー上のファイルやフォルダに対する**「パーミッション(ファイル権限)」の適切な設定**です。
パーミッション設定が緩すぎると、悪意のある第三者や攻撃用ボットに不正なPHPスクリプト(バックドア)を設置されたり、重要な設定ファイルが改ざんされたりする重大なセキュリティ被害につながります。逆にパーミッションを厳しく設定しすぎると、「403 Forbiddenエラーでサイトが表示されない」「画像やメディアがアップロードできない」「プラグインやテーマの更新が失敗する」といったサイト運営上のトラブルを引き起こします。
本記事では、**WordPressにおけるファイル・ディレクトリ別の推奨パーミッション値(400/600/644/705/755など)の一覧表、FTPソフトやサーバー管理画面・SSHコマンドを用いた具体的な変更手順、間違ったパーミッションが引き起こすトラブルの解決策、そしてサイトを強固に守るセキュリティ強化策**までを網羅して徹底解説します。
—
💡 この記事でわかること
- パーミッションの基本構造:3桁の数字(755、644、600など)が持つ意味と権限の計算ルール
- WordPressの推奨パーミッション一覧:wp-config.phpや.htaccess、wp-contentなどの最適設定
- 「777」が絶対NGな理由:サイト改ざんやマルウェア設置を招くセキュリティ上の重大リスク
- 安全な変更手順4選:FTP(FileZilla)、管理画面ファイルマネージャー、SSHコマンド、WP-CLI
- パーミッション起因のエラー解消法:403 Forbiddenや画像アップロード失敗、更新エラーの復旧手順
- パーミッションと併せて行うべき堅牢化策:設定ファイルの隔離保護とセキュリティ診断の活用
1. WordPressのパーミッション(ファイル権限)とは?基礎知識と数字(755/644/600)の意味
パーミッション(Permission)とは、サーバー上のファイルやフォルダ(ディレクトリ)に対して、**「誰が」「どのような操作を行うことができるか」を定めたアクセス権限**のことです。
1-1. パーミッションが果たすセキュリティ上の役割
WordPressは、Webサーバー(ApacheやNginx)、PHPプログラム、データベース(MySQL/MariaDB)、そしてサイトを訪れる一般ユーザーや管理者など、複数の主体が連携して動作しています。
もしすべてのファイルに対して誰でも自由に編集できる権限を与えてしまうと、悪意ある第三者がWeb経由で不正なPHPコードを書き込んだり、重要なデータベース設定を盗み見たりすることが可能になってしまいます。逆に、必要な権限まで制限してしまうと、WordPress本体がメディアを保存できなくなったり、訪問者がページを表示できなくなったりします。
つまり、パーミッション設定のゴールは**「Webサイトとしての正常な動作を保証しつつ、不正な改ざんや盗難のリスクを最小限に抑える最小権限の原則(Principle of Least Privilege)を適用すること」**にあります。
1-2. 3桁の数字(パーミッション値)の仕組みと読み解き方
LinuxなどのUNIX系サーバーでは、パーミッションは通常「755」や「644」「600」といった**3桁の数字(8進数表記)**で表現されます。
この3つの桁は、左から順に以下の「3つの対象者(ユーザー区分)」に対する権限を表しています。
- 1桁目(左):所有者(Owner / User) … ファイルを作成したユーザー(FTPアカウントやサーバー契約者)
- 2桁目(中):グループ(Group) … サーバー内で同じグループに属するユーザー群
- 3桁目(右):その他(Other / Public) … Webサイトの一般訪問者や第三者を含むその他の全ユーザー
1-3. 「読み取り(r)」「書き込み(w)」「実行(x)」と権限の計算ルール
各桁の数字は、以下の3つの基本操作権限に割り当てられた数値の「合計値」で決まります。
| 権限の種類 | 記号 | 数値 | ファイルにおける意味 | ディレクトリにおける意味 |
|---|---|---|---|---|
| 読み取り(Read) | r |
4 | ファイルの内容を表示・読み取る権限 | フォルダ内の一覧を表示する権限 |
| 書き込み(Write) | w |
2 | ファイルを変更・保存・削除する権限 | フォルダ内に新規作成・削除する権限 |
| 実行(Execute) | x |
1 | プログラムとして実行する権限 | フォルダ内へアクセス(移動)する権限 |
これらの数値を足し合わせることで、各桁の数字が決まります。
- 7(4+2+1):読み取り + 書き込み + 実行(すべての権限を許可)
- 6(4+2+0):読み取り + 書き込み(編集・変更は可能だが実行は不可)
- 5(4+0+1):読み取り + 実行(閲覧とフォルダアクセスのみ許可)
- 4(4+0+0):読み取りのみ(変更も実行も不可)
- 0(0+0+0):すべてのアクセスを拒否
📌 代表的なパーミッション例の読み解き
- 755(rwxr-xr-x):所有者は「全権限(7)」、グループとその他は「読み取り・実行のみ(5)」。ディレクトリの標準設定。
- 644(rw-r–r–):所有者は「読み書き(6)」、グループとその他は「読み取りのみ(4)」。通常ファイルの標準設定。
- 600(rw——-):所有者のみ「読み書き(6)」可能で、グループとその他は完全アクセス拒否(0)。重要ファイルのセキュア設定。
- 400(r——–):所有者のみ「読み取りのみ(4)」可能。絶対に変更させない設定ファイルの最高セキュリティ設定。
2. 【一覧表】WordPressファイル&ディレクトリの推奨パーミッション完全まとめ
WordPress公式ドキュメント(Codex / WordPress.org Documentation)および一般的なレンタルサーバーで推奨されている標準パーミッションと、セキュリティをより高めるための強化設定一覧は以下の通りです。
| 対象ファイル / ディレクトリ | 標準推奨値 | セキュリティ強化推奨値 | 役割と権限の理由 |
|---|---|---|---|
| すべてのディレクトリ(一般) ( /, /wp-admin/, /wp-includes/ 等) |
755 | 755 (一部705) |
Webサーバーがフォルダを参照してファイルを配信するため、実行権限(x=1)が必須。 |
| すべてのファイル(一般) ( index.php, .php, .css, .js 等) |
644 | 644 (一部604) |
Webサーバーがファイルを読み取れるようにしつつ、外部からの上書きを防止する。 |
| wp-config.php (最重要設定ファイル) |
600 | 400 (または 600 / 440) |
データベースパスワードや認証用ユニークキーが記載されているため、所有者以外アクセス禁止。 |
| .htaccess (Apache設定ファイル) |
644 | 604 (または 600 / 400) |
URLリライトやセキュリティルールを管理。外部からの改ざんを防ぎつつWebサーバーが読み取り可能にする。 |
| wp-content ディレクトリ | 755 | 755 | テーマやプラグイン、アップロードファイルを格納。書き込み権限を広く与えすぎないよう注意。 |
| wp-content/uploads/ | 755 | 755 | 画像やメディアのアップロード先。WordPressプロセスが書き込める権限を維持。 |
2-1. 基本ディレクトリ・ファイルの推奨値(ディレクトリ755 / ファイル644)
原則として、WordPressの構成要素は**「ディレクトリは755、ファイルは644」**が世界標準のゴールデンルールです。
- ディレクトリが「755」である理由:ディレクトリに実行権限(x)がないと、Webサーバー(Apache/Nginx)がそのディレクトリ内に移動して中のPHPファイルや画像ファイルを読み込むことができず、403 Forbiddenエラーが発生します。
- ファイルが「644」である理由:所有者(PHPの実行ユーザーまたはFTPユーザー)だけが書き込み可能で、Webサーバーや訪問者は「読み取りのみ」が可能です。これにより、訪問者や第三者のプロセスによる勝手なファイル上書きを遮断します。
2-2. 最重要ファイル「wp-config.php」の推奨値(600 / 400)
wp-config.php はWordPressの中で最も機密性の高いファイルです。この中には、データベースの接続先ホスト名、データベース名、ユーザー名、ログインパスワード、セキュリティ用SALTキーが平文(暗号化されていない状態)で記述されています。
もしこのファイルが第三者に読み取られると、データベースを直接操作されて管理者アカウントを作られたり、全データを盗まれたりします。
- 推奨パーミッション「600」:所有者のみ読み書き可能。グループおよびその他のユーザーからの読み取りを完全に遮断します。
- 高セキュリティ設定「400」:所有者に対しても「読み取り専用」にし、意図しない上書きやPHP実行時の悪意ある書き換えを完全に防ぎます(設定変更時のみ一時的に600に戻します)。
2-3. サーバー制御ファイル「.htaccess」の推奨値(644 / 604)
.htaccess はApache Webサーバーのリダイレクト設定やアクセス制御を行う重要なファイルです。攻撃者はこのファイルを書き換えて、サイト訪問者を不正なフィッシングサイトや詐欺サイトへ強制リダイレクトさせる「リダイレクトハッキング」を頻繁に試みます。
- 推奨パーミッション「644」または「604」:Webサーバーが設定を読み込める状態を維持しつつ、書き込み権限を厳格に制限します。
- 管理画面からのパーマリンク変更後:パーマリンク設定を確定させた後は、パーミッションを「444」または「404」に設定して完全読み取り専用にしておくことで、改ざん耐性を極限まで高めることができます。
2-4. コンテンツ・画像ディレクトリ「wp-content / uploads」の推奨値
/wp-content/ 配下のディレクトリ(/plugins/, /themes/, /uploads/)は、WordPressがプラグインのインストールや画像のアップロードを行う場所です。
- 推奨値は「755」:多くの初心者向け記事で「画像のアップロードに失敗したら777にしましょう」と紹介されていることがありますが、これは極めて危険な誤りです。
- 最新のPHP環境(FastCGI/suEXEC)では、所有者権限(7)があればWordPressは安全にファイル書き込みを行えます。「777」にする必要は一切ありません。
2-5. 【主要レンタルサーバー別】パーミッション推奨設定の違い
日本の主要レンタルサーバーでは、PHPの実行方式やセキュリティ仕様によって最適なパーミッションが若干異なる場合があります。
| サーバー会社 / サービス名 | ディレクトリ推奨 | ファイル推奨 | wp-config.php推奨 | 特徴・注意点 |
|---|---|---|---|---|
| エックスサーバー(Xserver) | 755 / 705 |
644 / 604 |
600 / 400 |
CGI/FastCGI版PHPで動作。777などの緩い権限を設定するとWAFやサーバーセキュリティ機能で自動制限される場合がある。 |
| ConoHa WING | 755 |
644 |
600 / 400 |
コントロールパネル内のファイルマネージャーから簡単に一括変更が可能。 |
| さくらのレンタルサーバ | 755 / 705 |
644 / 604 |
600 / 400 |
suEXEC環境。CGIモードではパーミッションが緩すぎるとInternal Server Errorになる仕様。 |
| ロリポップ!(LOLIPOP!) | 755 / 705 |
644 / 604 |
600 / 400 |
LiteSpeed/CGI環境。WAF機能が標準装備されており、権限管理とセットで運用。 |
| AWS / VPS(自作環境) | 755 |
644 |
600 / 400 |
Apache/Nginxの実行ユーザー(www-dataやnginx)とファイル所有者のグループ整合が重要。 |
3. なぜ「777」は絶対NGなのか?間違った権限設定が招く重大リスク
トラブルシューティング時に「動かないからとりあえず権限を777にする」という対応をしてしまう方がいますが、**WordPressにおいて「777」を設定することは絶対に避けるべき**です。
🚨 「777(フルオープン権限)」が招く3大リスク
- 1. Webシェル(バックドア)の無制限設置:攻撃用スクリプトを自由に書き込まれ、サーバーを遠隔操作される
- 2. サイトの改ざんと不正リダイレクト:既存のPHPや.htaccessが書き換えられ、偽通販サイト等へ訪問者が飛ばされる
- 3. 共有サーバー環境での他アカウントからの侵害:同じ物理サーバー内の他ユーザー・プロセスからアクセス可能になる
3-1. 誰でも書き換え可能になる「777」の危険性
パーミッション「777(rwxrwxrwx)」は、ファイルの所有者だけでなく、サーバー上に存在するすべてのプロセス・第三者に対して「読み取り」「書き込み」「実行」を無条件で許可する状態です。
これは、**「自宅の玄関の鍵を開け放ち、誰でも中に入って家具を自由に持ち出したり模様替えしたりして良い状態」**にしておくことと同義です。
3-2. 不正なPHPファイル・バックドアの設置被害
WordPressへのサイバー攻撃の多くは、プラグインの脆弱性などを突いて小さな実行経路を見つけ出し、そこに本格的な管理権限を奪う「Webシェル(バックドアファイル)」を送り込むという手法を取ります。
もし wp-content/uploads/ やテーマディレクトリが 777 になっていると、攻撃者は何の障壁もなく不正なPHPファイルを設置し、サーバーを自由自在に乗っ取ることができてしまいます。
3-3. サイトの改ざん・リダイレクトハッキングへの発展
index.php や wp-load.php、あるいは .htaccess が書き換え可能な状態になっていると、悪意のあるJavaScriptやリダイレクトコードが勝手に挿入されます。
Google検索結果からの流入者が偽の当選詐欺サイトや不正広告サイトへ転送されてしまう「リダイレクトハッキング」が発生し、検索エンジンから警告を受けたり、検索順位が圏外へ吹き飛ぶといった壊滅的な被害を招きます。
4. WordPressのパーミッションを変更する4つの方法
WordPressのパーミッションを変更・修正する具体的な4つの手順を、初心者向けからエンジニア向けまで分かりやすく解説します。
4-1. 【方法1】FTPソフト(FileZilla / WinSCP)で変更する手順(初心者向け)
GUIで視覚的に操作できるFTPソフト(FileZillaなど)を使用する方法です。
- FTPソフトを起動してサーバーに接続:サイトのホスト名、ユーザー名、パスワードを入力して接続します。
- 対象ファイル・フォルダを右クリック:変更したいファイル(例:
wp-config.php)を右クリックし、**「ファイルパーミッション(属性変更)」**を選択します。 - 数値を入力:
wp-config.phpの場合は「600」または「400」を入力- 通常のファイルなら「
644」を入力
- サブディレクトリを含めて一括変更する場合:
- WordPressのルートディレクトリを右クリック >「ファイルパーミッション」を選択
- 「サブディレクトリを含める」にチェックを入れる
- 「ディレクトリのみに適用」を選択して数値「
755」を入力して実行 - 完了後、再度同じ操作で「ファイルのみに適用」を選択して数値「
644」を入力して実行
4-2. 【方法2】レンタルサーバーのファイルマネージャーで変更する手順
FTPソフトをインストールしていない場合でも、レンタルサーバーの管理画面から直接変更できます。
- エックスサーバーの場合:「ファイルマネージャ」にログイン > 対象ドメインの
public_htmlに移動 > ファイルを選択して「パーミッション変更」ボタンから数値を設定。 - ConoHa WINGの場合:コントロールパネル >「サイト管理」>「ファイルマネージャー」> ファイルを右クリック >「プロパティ」から権限を変更。
- さくらのレンタルサーバの場合:コントロールパネル >「ファイルマネージャー」> 対象ファイルを選択 >「プロパティ」> 権限数値を変更。
4-3. 【方法3】SSH(コマンドライン・chmod / find)で一括変更する手順(中・上級者向け)
SSH接続が可能な場合、find コマンドと chmod を組み合わせることで、数千個のファイル・フォルダを一瞬で適切な推奨値にリセットできます。
# WordPressのインストールディレクトリ(ドキュメントルート)へ移動
cd /path/to/wordpress/public_html
# 1. すべてのディレクトリを一括で 755 に変更
find . -type d -exec chmod 755 {} +
# 2. すべてのファイルを一括で 644 に変更
find . -type f -exec chmod 644 {} +
# 3. wp-config.php をセキュアな 600(または 400)に変更
chmod 600 wp-config.php
# 4. .htaccess を 644(または 604)に変更
chmod 644 .htaccess
⚠️ 所有者(Owner/Group)の確認も忘れずに
VPSや独自サーバー環境では、パーミッションだけでなくファイルの「所有者(UID/GID)」が Webサーバー(例: www-data や nginx, apache)と一致している必要があります。
chown -R www-data:www-data /path/to/wordpress などのコマンドで所有者を正しく設定してください。
4-4. 【方法4】WP-CLIを活用した権限リセット・検証手順
WP-CLI(WordPress公式のコマンドライン管理ツール)を導入している環境では、ファイルの整合性チェックと権限管理を素早く実行できます。
# WordPressコアファイルの改ざん・整合性をチェック
wp core verify-checksums
# プラグインのチェックサム検証
wp plugin verify-checksums --all
5. パーミッション設定の不備で起きる主なトラブルと解決策
パーミッションが不適切な場合に発生する代表的なトラブル症状と、その具体的な復旧ステップを紹介します。
5-1. 「403 Forbidden」エラーでサイトや管理画面が見られない
【原因】
パーミッションを厳しく設定しすぎた結果、Webサーバーがファイルやディレクトリを読み取れなくなっている状態です。
- ディレクトリのパーミッションが「700」や「644」などになっており、実行権限(x)が不足している
index.phpやwp-admin/index.phpが「600」や「000」になっている- レンタルサーバーのセキュリティ仕様で「777」が禁止されており、アクセスが遮断されている
【解決策】
FTPまたはファイルマネージャーから、ドキュメントルートおよび主要ディレクトリを「755」、ファイルを「644」に戻してください。
5-2. 画像やメディアのアップロードに失敗する(「ディレクトリを作成できません」など)
【原因】
/wp-content/uploads/ ディレクトリに対するWordPress(PHPプロセス)の書き込み権限(w)が不足しているか、フォルダの所有者が異なっています。
【解決策】
/wp-content/uploads/および配下の年・月フォルダのパーミッションを「755」に設定します。- VPS環境等の場合は、所有者をWebサーバー実行ユーザー(
chown -R www-data:www-data wp-content/uploads)に統一します。
5-3. プラグインやテーマ、WordPress本体の自動更新に失敗する
【原因】
/wp-content/plugins/ や /wp-content/upgrade/ ディレクトリに書き込み権限がないため、更新ファイルの展開に失敗します。
【解決策】
/wp-content/plugins/ および /wp-content/themes/ のパーミッションを「755」に設定し、一時フォルダ /wp-content/upgrade/ が存在しない場合は手動で作成して「755」を付与します。
5-4. ファイル更新時にFTP接続情報の入力を求められる場合の対処
管理画面からプラグイン更新やインストールを行う際に、「接続情報(FTPアカウント情報)」を要求される画面が出ることがあります。
これは、WordPressが「自分自身で直接ファイルを書き換える権限がない」と判定した場合に発生します。
【解決コード】
wp-config.php に以下の1行を追記することで、直接書き込み方式(Direct Method)を強制できます。
/** WordPressファイルシステムの直接書き込みを有効化 */
define('FS_METHOD', 'direct');
6. パーミッションと併せて実施すべきWordPressサイト堅牢化策
パーミッションの適正化はセキュリティの土台ですが、単体では防ぎきれない高度な攻撃も存在します。以下の対策を組み合わせることで、強固な「多層防御」を構築しましょう。
6-1. wp-config.phpをドキュメントルートの1階層上に移動して保護する
WordPressには、**「ドキュメントルート(公開ディレクトリ)に wp-config.php が見つからない場合、自動的に1階層上の親ディレクトリを探す」**という標準機能が備わっています。
Webブラウザから直接アクセスできない公開領域外に wp-config.php を退避させることで、Webサーバーの設定ミスによる漏洩リスクをゼロにできます。
6-2. .htaccessによる重要ファイルへの直接アクセス遮断
Web経由での wp-config.php や .htaccess へのアクセスを完全に遮断するため、.htaccess ファイルの先頭に以下の記述を追加します。
# wp-config.php へのアクセスを完全拒否
<Files wp-config.php>
Order deny,allow
Deny from all
</Files>
# .htaccess や .htpasswd などのドットファイルへのアクセス拒否
<FilesMatch "^\.">
Order deny,allow
Deny from all
</FilesMatch>
6-3. ディレクトリ一覧表示(インデックス表示)の無効化
index.php が存在しないディレクトリにアクセスされた際、フォルダ内のファイル一覧(ディレクトリリスティング)が丸見えになってしまうのを防ぎます。
# ディレクトリ一覧表示の無効化
Options -Indexes
6-4. 定期的なセキュリティ診断の実施(MozCheck無料診断の活用)
設定ファイルやパーミッションを一度適切に設定しても、プラグインの追加やサーバーアップデート、バックアップ作業の過程で意図せず権限が変更されてしまうことがあります。
サイトに潜在的な脆弱性や権限の不備が残っていないかを定期的に確かめるために、URLを入力するだけで外部から即座にスキャンできるMozCheck無料診断を定期的に活用し、セキュリティ状態を可視化・維持することをおすすめします。
7. WordPressのパーミッションに関するよくある質問(FAQ)
Q1. パーミッションを厳しくしすぎるとサイトが壊れますか?
A. サイトデータそのものが破損することはありませんが、一時的にアクセス不能(403 Forbidden)になったり機能が停止することがあります。
たとえばディレクトリを「700」や「600」にするとWebサーバーが中身を読めなくなりますが、パーミッションを「755」に戻せば即座に正常な状態へ復旧します。変更前には必ずFTPやSSHの接続環境を確保した状態で作業してください。
Q2. サーバーを移行したらパーミッションが変わってしまいました。どうすればいいですか?
A. zip解凍やFTP転送の方式によって権限がリセットされることがあります。
サーバー移行後は、本記事の「4-3. SSHコマンドによる一括リセット」またはFTPソフトの一括属性変更機能を用いて、「ディレクトリ=755、ファイル=644、wp-config.php=600」に再設定してください。
Q3. WordPressプラグインでパーミッションを自動チェックできますか?
A. はい、「SiteGuard WP Plugin」や「Wordfence Security」「Solid Security」などのプラグインで確認可能です。
プラグインのダッシュボード上で主要ファイルの権限状態が診断され、不適切なパーミッションになっている場合に警告を表示してくれます。
Q4. uploadsフォルダ内でPHPの実行を禁止するには?
A. /wp-content/uploads/.htaccess を作成し、PHPの実行を無効化する設定を記述します。
画像アップロードフォルダに万が一不正なPHPが設置されても実行できなくなり、セキュリティが大幅に向上します。
# uploadsディレクトリ内でのPHP実行を禁止
<Files *.php>
deny from all
</Files>
8. まとめ:適切なパーミッション設定でWordPressの堅牢性を高めよう
WordPressにおけるパーミッション設定は、サイトの安定稼働とセキュリティ堅牢化の「第一防衛ライン」です。
「ディレクトリは755、ファイルは644、wp-config.phpは600/400、そして777は絶対に使わない」という鉄則を徹底し、安全なサイト運営環境を維持しましょう。
📝 パーミッション設定&サイト堅牢化チェックリスト
- [ ] ディレクトリ権限の統一:すべてのディレクトリが「
755」(一部サーバーでは705)になっている - [ ] ファイル権限の統一:通常のファイルが「
644」(一部サーバーでは604)になっている - [ ] wp-config.phpの厳重保護:パーミッションが「
600」または「400」に制限されている - [ ] .htaccessの保護:パーミッションが「
644」(または604)で直接アクセス拒否ルールが設定されている - [ ] 「777」の完全排除:サーバー上に誰でも書き込めるフルオープン権限のファイル・フォルダが存在しない
- [ ] 定期的な脆弱性スキャン:MozCheck無料診断を実施してセキュリティ設定の不備がないか確認する
セキュリティ対策は一度設定して終わりではありません。定期的なチェックとメンテナンスを実施して、大切なWebサイトとユーザーの安全を守り続けましょう。
—
あわせて読みたい関連記事
* WordPressの403 Forbiddenエラー原因と直し方完全ガイド|管理画面・記事保存時のWAF解除から.htaccess・パーミッション復旧まで
* WordPressのユーザー名(ログインID)を隠す完全ガイド|露出する原因とプラグイン・コードによる漏洩防止手順
* WordPressのXML-RPC(xmlrpc.php)を停止・無効化する完全ガイド|攻撃リスクと.htaccess・プラグイン・コードによる安全な遮断手順
* WordPress改ざん復旧完全マニュアル|原因特定からバックドア根絶・安全なデータ復元手順まで
* WordPressセキュリティ診断ツールおすすめ比較|無料・オンライン・プラグインの選び方
コメントを残す