HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

WordPressのファイル権限(パーミッション)とは?初心者向け完全ガイド

WordPressのファイル権限(パーミッション)は、議論が絶えないテーマの一つです。ネット上には大量の情報がありますが、その中には誤ったアドバイスも少なくありません。WordPress公式にもファイル権限に関するドキュメントがありますが、初心者にはやや分かりにくい内容となっています。

本記事では、WordPressのファイル権限について理解するための完全ガイドをお届けします。この記事で学べる内容は以下のとおりです。

  • サイトを安全に保つために推奨されるWordPressのファイル権限
  • ファイルやディレクトリの権限を安全に変更する方法
  • 誤った権限設定によって発生しやすいエラーのトラブルシューティング

要点まとめ: WordPressのファイル権限は、ハッカーなどによる不正アクセスからサイトのファイルやディレクトリを守る仕組みです。多くの場合、優れたホスティング業者や開発者が一度適切に設定してくれるため、その後意識することはほとんどありません。ただし、権限を変更する際は慎重に行い、必ず事前にサイトのバックアップを取ることをおすすめします。

WordPressのファイル権限とは

ファイル権限とは、WordPressを構成するファイルやディレクトリに対するアクセス制御であり、「誰がファイルを読み取り・書き込み・実行できるか」を指定するものです。

すべてのユーザーが自由にファイルを読んだり書き換えたりできてしまうと、重大なセキュリティリスクになります。WordPressの権限設定は、サーバーのように複数ユーザーが存在するシステムのためのセキュリティ対策なのです。

WordPressのファイル権限の仕組み

FTPクライアントやcPanelでWordPressのファイル一覧を見たことがあれば、各ファイルやディレクトリの横に「3桁の数字」または「rwxという9文字の記号」が表示されているのに気づいたことがあるでしょう。これがファイル権限で、ファイルごと・ディレクトリごとに個別に適用されます。

ファイル権限には2つの要素が絡み合っています。1つ目は「権限の種類」、2つ目は「ロール(対象者)」です。この2つが組み合わさって、ファイルやディレクトリへの権限がどのように適用されるかを示します。

権限の種類

WordPressのファイル権限には「読み取り」「書き込み」「実行」の3種類があり、それぞれ2つの表記方法(数値表記とシンボル表記)で示されます。

権限意味数値記号
読み取りファイルやディレクトリの内容を閲覧できる(変更は不可)4r
書き込みファイルやディレクトリの内容を変更できる(実行は不可)2w
実行スクリプトファイルを実行できる、またはディレクトリ内のスクリプトを実行できる1x
権限なしファイルやディレクトリにアクセスできない0-

ロール(対象者)

権限の適用対象には「所有ユーザー」「グループ」「その他(world)」の3カテゴリがあります。

  • ユーザー(User): システム上の個別アカウントで、ファイルやディレクトリの所有者です。
    FTPクライアントでサーバーにログインするとき、ユーザー名とパスワードが必要ですよね。このユーザー名がFTPユーザーアカウントです。同様に、Webサーバーもアカウントを使ってファイルにアクセスします。アカウントの背後に「人」がいなくても、システム上ではユーザーとして扱われます。
  • グループ(Group): ユーザーの集合体であり、所有者として指定されることもあります。複数のユーザーにまとめて所有者権限を付与する便利な仕組みです。
  • その他(World): 該当ファイルの所有者でもグループのメンバーでもない、それ以外の全ユーザーです。

これらのロールはシステムによって呼び方が異なる場合があります。たとえば「world」が「public」と表記されることもあります。また、所有ユーザーが単に「user」と呼ばれることもあり、紛らわしい点もありますが、WordPressの権限設定で目にするロールは基本的にこの3つだと考えて問題ありません。

権限の数字と記号の読み方

ここまでで各権限の意味と適用対象が分かったところで、記号や数字の並びが少し読みやすくなったはずです。

各ファイルやディレクトリには、「ユーザー」「グループ」「その他」の3つのロールそれぞれに対して権限を割り当てる必要があります。そのため、記号が3セット表示されていたり、数字が0・1・2・4以外になることがあったりするのです。

シンボル表記の場合、最初の3文字がユーザーの権限、次の3文字がグループの権限、最後の3文字がその他の権限を示します。

数値表記の場合、1桁目がユーザー、2桁目がグループ、3桁目がその他の権限です。数値は各ロールに与えられた権限の合計値になります。

つまり、0・1・2・4がそれぞれ「権限なし」「読み取り」「書き込み」「実行」を表すのに対し、その他の数字は次のような意味を持ちます。

  • 3 =(2 + 1)= 書き込み+実行
  • 5 =(4 + 1)= 読み取り+実行
  • 6 =(4 + 2)= 読み取り+書き込み
  • 7 =(4 + 2 + 1)= 読み取り+書き込み+実行

具体的な権限設定の例を表にまとめました。

ユーザーグループその他
777rwxrwxrwx読み取り書き込み実行読み取り書き込み実行読み取り書き込み実行
644rw-r--r--読み取り書き込み-読み取り--読み取り--
755rwxr-xr-x読み取り書き込み実行読み取り-実行読み取り-実行
440r--r-----読み取り--読み取り-----

WordPressで推奨されるファイル権限

WordPressを含むあらゆるシステムでは、ファイル同士が互いにアクセスしてさまざまな処理を行います。そのため、000や440といった最も厳格な権限は安全ではありますが、実用的ではありません。

逆に777は非常に危険です。すべてのユーザーに変更権限を与えてしまうためです。コアファイルを777に設定するよう勧める情報はまずありませんし、例外的なケースを除き、ディレクトリにも推奨されません。

WordPressサイトに推奨される権限設定は以下のとおりです。

  • ルートディレクトリ(通常はpublic_html):755
  • wp-admin:755
  • wp-includes:755
  • wp-content:755
  • wp-content/themes:755
  • wp-content/plugins:755
  • wp-content/uploads:755
  • .htaccess:644
  • index.php:644
  • wp-config.php:640

一般的に、ディレクトリは755、ファイルは644に設定するのが基本です。これはWordPress公式も推奨している値であり、自動更新が正常に機能するためにも必要な設定です。権限を厳しくしすぎると自動更新が失敗することがあります。

注意したいのは、ファイル権限がホスティング環境の構成に大きく依存するという点です。Webサーバーのプロセスがどのユーザーアカウントでサイトのファイルにアクセスするかが関係してくるためです。

たとえばwp-config.phpには640を推奨していますが、ホストによっては動作しない場合があります。その場合は644に戻しましょう。

WordPressのファイル権限を変更する方法

ファイル権限は概念こそシンプルですが、実際の操作では注意が必要です。サイトのバックエンドに変更を加える前には、必ずバックアップを取ることをおすすめします。小さなミスでもサイトに支障が出たとき、バックアップがあれば復旧できます。

WordPressのファイル権限は、個別のファイル単位でもディレクトリ単位でも変更できます。ディレクトリ単位で変更すると、その中身にも再帰的に適用されます。いずれの場合も、まずサイトのファイルにアクセスする必要があります。

アクセス方法はいくつかあるので、自分に合った方法を選びましょう。

cPanelで権限を変更する

cPanelは世界で最も広く使われているホスティング管理パネルなので、ここではcPanelを使って解説します。ホストがPleskやWebminなど別のソフトを使っている場合でも、手順はほぼ同じ考え方で対応できます。

1. cPanelにログインします。ホストのダッシュボードにリンクがあるか、サイトURLの末尾に「/cpanel」を付けてアクセスします。

2. 「ファイル」セクションにあるファイルマネージャー(File Manager)をクリックします。

3. サイトのルートディレクトリを見つけて展開し、中身を表示します。通常、ルートディレクトリはpublic_htmlです。

4. エクスプローラー画面にサイトのファイルとディレクトリが表示されます。「Permissions(権限)」の列を確認しましょう。

5. ファイルまたはディレクトリを右クリックし、ドロップダウンメニューからChange Permissions(権限の変更)を選択します。

6. 権限設定のダイアログが開くので、必要な権限を設定します。

7. Change Permissionsをクリックして保存・終了します。

補足:複数のファイルやディレクトリを選択した状態で、まとめて権限を変更することも可能です。

FTPで権限を変更する

FTPはサーバーに接続してファイルにアクセスするもう一つの手段です。ホスト側に操作画面がない場合はFTPクライアントが必要です。このチュートリアルではCyberduckを使用していますが、FileZillaも定番の人気クライアントです。

1. FTP認証情報でサーバーにログインします。必要なのはサーバー名またはIPアドレス、ユーザー名、パスワードです。場合によってはポート番号も求められます。

2. ルートディレクトリを見つけて開きます。多くの場合、ルートディレクトリはpublic_htmlです。

3. FTPクライアントが権限を自動表示しない場合は、設定で表示を有効にする必要があるかもしれません。ファイルやディレクトリを選択して右クリックし、権限を変更します。Cyberduckの場合は「Info(情報)」メニュー内に権限設定があります。

4. チェックボックスを使うか、3桁の数値コードを直接入力して権限を変更します。

SSH(chmodコマンド)で権限を変更する

SSHはコマンドラインからサーバー上のファイルを操作する方式です。cPanelのファイルマネージャーやFTPクライアントなら視覚的に確認できる権限も、コマンドライン上ではひと目では分かりません。そのため、SSHでの権限変更はいくつか手順が増えます。

1. コマンドラインからサーバーにログインします(ここではmacOSのターミナルを使用)。

2. サイトのルートディレクトリへ移動します(ここではpublic_html)。

3. 現在のファイルやディレクトリの権限を確認します。ls -lコマンドを使います。

補足:権限表示の先頭にあるダッシュ(-)はファイルの種類を示します。「-」はファイル、「d」はディレクトリを表し、権限設定そのものとは無关系です。

4. chmodコマンドでファイルやディレクトリの権限を変更します。

検証用に「temp」という一時ディレクトリを作成し、その中に「temp1」「temp2」というサブディレクトリを作りました。両方とも権限は775で、これはこのサイトのディレクトリのデフォルト値です。

次にtemp1の権限を775から755に変更しました。コマンドの構文は「chmod <権限> <ファイル名またはディレクトリ名>」です。

再度ls -lを実行すると、temp1のグループ所有者の権限が変わっていることが確認できます。

ディレクトリ全体の権限を一括で設定する

chmodコマンドでは、ディレクトリとその中身すべての権限を一度に変更できます。構文は「chmod -R <権限> <ディレクトリ名>」です。「-R」は再帰的に実行することを意味します。

この方法でtempディレクトリとその中身すべての権限を750に変更できます。

ただし、再帰コマンドの使用には注意が必要です。思わぬ結果を招くことがあるため、確信が持てない場合は個別に設定するのが安全です。

サイト全体のファイルとディレクトリの権限を一括設定する

先述の推奨設定に合わせて、サイト全体の権限をワンステップで設定したい場合は、次のコマンドが使えます。ファイルを644、ディレクトリを755に設定します。

  • find . -type f -exec chmod 644 {} +(ファイル用)
  • find . -type d -exec chmod 755 {} +(ディレクトリ用)

コマンド実行後、権限が変更されたファイルとディレクトリの一覧が表示されます。

umask値を理解する

ファイル権限関連の記事では「umask」というコマンドを目にすることがあります。umaskを実行すると、特定のユーザーアカウントにおけるファイル権限のオフセット値が返されます。この値は、新規作成されるファイルやディレクトリのデフォルト権限(ファイルは0666、ディレクトリは0777)から差し引かれる形で適用されます。

たとえばumaskの実行結果が0002だった場合、新しく作られるファイルには666から002を差し引いた664が、新しく作られるディレクトリには777から002を差し引いた775が割り当てられます。これは単純な引き算ではなく、その他(world)ロールへのオフセットとして働きます。

umaskの設定は一時的にも恒久的にも変更可能です。

プラグインで権限を変更する

cPanel、FTP、SSHのいずれにも慣れていない場合は、「All In One WP Security」のようなプラグインを使って一部のWordPressファイル権限を変更できます。

1. wp-adminからAll In One WP Securityをインストールして有効化します。

2. 左メニューの「WP Security」配下にあるFilesystem Security(ファイルシステムセキュリティ)へ移動します。

3. 最初のタブFile Permissions(ファイル権限)に、WordPressのコアファイルやディレクトリのリストが表示されます。現在の権限設定と推奨値が並んでおり、ボタンをクリックするだけで推奨値に変更できます。

ただし、このプラグインで扱えるのは一部のディレクトリとファイルのみで、推奨値への変更しかできません。プラグインでできる権限設定の範囲には限界がある点は押さえておきましょう。

いつファイル権限を変更すべきか

ファイル権限の変更は気軽にできる作業ではないため、「本当に変更が必要なとき」を見極めることが大切です。経験豊富な開発者やホスティング業者がWordPressを設置してくれたなら、基本的には既存の権限設定をそのままにしておくのが得策です。

一方、WordPressを手動でインストールした場合は、本記事で紹介した推奨値を設定しておくのが賢明です。また、プラグインやテーマがエラーを出したときにも権限変更が必要になることがあります。具体例は次のセクションで解説します。

いずれにせよ、サイトファイルに変更を加える前には必ずバックアップを取りましょう。BlogVaultは最高品質のWordPressバックアップサービスです。さらにBlogVaultでバックアップを復元する際、新しいファイル権限を保持する選択もできるため、再設定の手間が省けます。

ファイル・フォルダ権限エラーのトラブルシューティング

ファイル権限は時にエラーの原因になります。ホスティング環境は千差万別なので、残念ながら万能の設定値は存在しません。本記事でもできるだけ一般的なケースに沿って説明していますが、エラーに遭遇する可能性は十分にあります。

ファイル権限に起因するWordPressサイトの典型的な問題を紹介します。

誤った権限設定でサイトがクラッシュする

セキュリティ強化のために権限を設定する際、慎重になりすぎることがあります。しかし、たとえばグループ所有者へのアクセスを過度に制限すると、サイトがクラッシュする恐れがあります。

これは、Webサーバーのプロセスがサイト上でコードを実行するためにユーザーアカウントを必要とするためによく起こります。通常、このアカウントは所有者アカウントではなく、グループ所有者に属しています。グループ所有者に十分な権限がないと、Webサーバーのプロセスが妨げられて失敗し、結果としてサイトがダウンします。

解決策は、本記事で紹介した推奨値に権限を戻すことです。

緩すぎる権限はハッキングの温床になる

逆極端にあるのが、緩すぎる権限設定です。何度強調しても足りませんが、777は絶対に避けるべきです

権限が厳しすぎると自動更新が失敗する

WordPressの自動更新には、wp-admin、wp-includes、その他多数のコアファイルやディレクトリへのアクセスが必要です。管理者の中には、普段は厳格な権限を維持し、更新時だけ一時的に緩める運用をしている人も多いようです。

一部のプラグインは緩い権限を要求する

正しいWordPressの権限設定は比較的寛容であり、通常はプラグインやテーマのエラーを引き起こしません。推奨値に設定しても「権限が厳しすぎる」というエラーが出続ける場合は、プラグインやテーマの開発者に連絡して原因を確認しましょう。なぜ緩い権限が必要なのか説明してもらい、そのプラグインやテーマのためにサイトのセキュリティを緩める価値があるか判断してください。

「Required File Permissions to import the templates are missing.(テンプレートのインポートに必要なファイル権限がありません)」

これは主に権限設定の不整合によるもので、Astraテーマでよく見られるエラーメッセージです。Astraは公式ドキュメントで解決策を公開しています。

「Missing a temporary folder(一時フォルダが見つかりません)」エラー

WordPressがファイルをアップロードしたり、コア・プラグイン・テーマを更新したりするには、wp-contentディレクトリ内の一時フォルダが必要です。一時フォルダが存在しないと、これらの操作はすべて失敗し、ダッシュボードにこのエラーが表示されます。

wp-config.phpに1行のコードを追加し、適切な権限を与えることで解決できます。詳しい対処法は専用チュートリアルを参照してください。

「You need to make this file writable before you can save your changes.(変更を保存する前に、このファイルを書き込み可能にする必要があります)」

WordPressのテーマエディターでテーマファイルを編集しようとしたときに発生することがあります。変更を行うプロセスに十分な書き込み権限がない場合に表示されます。該当プロセスがどのアカウントを使っているかを特定するには、開発者またはホスティング業者への問い合わせが必要です。

403 Forbiddenエラー

403 Forbiddenエラーは、アクセスしようとしたものへの権限がないことを意味します。たとえば、FTPアカウントではなくブラウザからwp-includesディレクトリにアクセスしようとすると、このエラーが表示されます。ブラウザ経由のアクセスでは、ユーザーやグループではなく「その他(world)」の権限が適用されるためです。

WordPressの特殊なユーザー

WordPressのファイル権限関連のチュートリアルでは、特殊なユーザーが言及されることがあります。網羅的ではありませんが、代表的なものを紹介します。

Nobody

ファイルへのアクセス権を持たない特殊なユーザーです。プログラムをnobodyで実行することで、仮にハッキングされても攻撃者が重要なファイルやディレクトリにアクセスできないようにできます。

www-data

www-dataは特殊なユーザーアカウントであると同時にグループでもあります。Webサーバーのプロセスを実行するために使われます。このアカウントは所有者と同じ権限を持つべきではありません。

ファイル権限がセキュリティに与える影響

Webサーバー(特にLinuxベースのもの)は、設計上、複数のユーザーを想定して作られています。多くの処理に必要な仕組みですが、同時にセキュリティリスクにもなります。そこで、誰もがファイルにアクセス・変更・実行できないよう、権限という仕組みが生まれました。

ファイル権限に関わる2つの概念は「ロール」と「権限」ですが、セキュリティの観点で特に問題になるのは、グループ所有者とその他(world)の権限です。

私たちが最も警戒すべきは、「その他(public)」にファイルやディレクトリへの書き込み権限を与えないことです。サイトのファイルを誰かに勝手に改ざんされたくないのは当然だからです。同様に、wp-config.phpのように広く一般に実行されたり閲覧されたりしては困るファイルもあります。wp-config.phpにはサイトのデータベース認証情報が含まれており、誰でも読める状態になっているのはサイトにとって壊滅的な事態を招き、マルウェアにとっては絶好の侵入機会となります。

ファイル権限に関するよくある誤解

権限を極端に厳しくすれば安全というわけではありません。厳格すぎる設定はサイトを使い物にならなくさせます。健全性と偏執性のバランスを取ることが鍵です。

「ユーザー・グループ・その他」というロールは、管理者や投稿者といったWordPressのユーザーアカウントの役割と混同されがちです。ユーザーアカウントのロールはwp-admin上の権限(プラグイン、投稿、テーマなどの操作範囲)を扱います。一方、ファイル権限で語られるのはサーバー上のファイルやディレクトリの話です。考えてみれば、wp-adminへのログイン情報とFTPのログイン情報はまったく別物ですよね。それほどまでに、この2つは異なるものなのです。

サイトの管理者アカウントにログインしても、ブラウザからwp-config.phpにアクセスすることはできません。サーバーの観点では、あなたは「public(その他)」のアカウントだからです。しかしFTPでサーバーにログインすれば、wp-config.phpは簡単に見つけられます。読むだけでなく、内容を書き換えることすら可能です。これは、あなたのFTPアカウントがwp-config.phpの所有者であるか、読み取りと変更の権限を持つユーザーだからです。

まとめ

WordPressのファイル権限に関する入門ガイドはいかがでしたでしょうか。WPのファイル権限はWordPressセキュリティの重要な歯車であり、WordPressハードニング(強化)の文脈でよく話題に上がります。

ただし、WordPressサイトに最高のセキュリティをもたらすのは、MalCareのような一流のセキュリティプラグインの導入です。マルウェアスキャナー、クリーナー、高度なファイアウォールの力を組み合わせたMalCareは、WordPressサイトのための包括的なセキュリティソリューションです。

FAQ

Q. WordPressサイトの権限はどうやって変更しますか?

A. cPanel、FTP、SSHのいずれかを使って変更できます。cPanelやFTPの場合は、対象ファイルに移動して右クリックし、希望の権限を設定します。SSHの場合はchmodコマンドで権限を設定します。

Q. WordPressのファイル・フォルダ権限の不備はどう直せばいいですか?

A. サイトサーバー上のファイルにアクセスする必要があります。アクセス方法はcPanel、FTP、SSHの3通りです。ファイルにアクセスできたら、該当するディレクトリへ移動し、正しい権限を設定しましょう。

Q. 755の権限とは何ですか?

A. 所有ユーザーには読み取り・書き込み・実行のフル権限が与えられ、グループ所有者とその他のユーザーには読み取りと実行のみ許可される設定です。

Q. WordPressのファイルにはどの権限を設定すべきですか?

A. WordPressファイルの権限は最大でも644にしてください。これより緩い設定はセキュリティ上のリスクとなります。

  1. WordPress のファイル構造とデータベースを理解するための初心者向けガイド

    通常、WordPress のファイル構造について気にする必要はありません。 . WordPress には優れた wp-admin インターフェースがあり、エンジンが内部でどのように機能するかを知らなくても、サイトの運営に集中できます。 ただし、サイトの要点を知っておくと役立つ場合があります。これは、予期しない問題が発生した場合に特に当てはまります。 、およびすべてのヘルプは、特定の WordPress ファイルの変更またはデータベース内の値のリセットについて説明しています。 問題が発生していなくても、バックアップやセキュリティについて調べている可能性があります。コア ファイルとデータベ

  2. Fitbit Pay完全ガイド:設定方法からお支払い・セキュリティ対策まで徹底解説

    Fitbitは、最も優れたスマートウェアラブルデバイスのひとつです。多彩なモデルと豊富な機能を備えており、その中でも人気の高い機能が「Fitbit Pay」です。Fitbit IonicやFitbit Versaに搭載されたNFC(近距離無線通信)チップにより、非接触決済に対応したあらゆる店舗で、腕時計をつけたまま支払いが可能になります。 この記事では、Fitbit Payの使い方をマスターできるよう、設定方法からセキュリティ対策まで完全ガイドとして詳しく解説します。 Fitbit Payとは? Fitbit Payは、デビットカードやクレジットカードをFitbit IonicおよびVersa