こんにちは。「クロジカサーバー管理」プリセールスの高瀬です。WordPressなどのCMSを利用していて、突如ファイルがアップロードできなくなったり自動更新に失敗することはありませんか?エラーの原因は様々ですが、弊社が多くお問合せを受ける原因の一つにパーミッションエラーが挙げられます。
今回はWebサーバーのファイルパーミッションについて、一般的なLinuxサーバーを前提に解説します。
ファイルパーミッションとは
ファイルに対する権限のことをLinuxサーバーではファイルパーミッションと呼びます。さらに細かく分けると各ファイル毎に下記の情報がパーミッション情報としてサーバー上に保存されています。
・ファイルの所有者
・ファイルの所有グループ
・ファイルの閲覧権限
・ファイルの編集権限
・ファイルの実行権限
ファイル所有者・所有グループとは
Linuxではサーバーにログインできるユーザーと複数ユーザーが所属できるグループを設定できます。このユーザーおよびグループがあることを前提に、各ファイルに対して「どのユーザーが所有者になっているか」、「どのグループが所有グループとなっているか」という情報が上記のパーミッション情報に含まれています。
各権限について
ファイルの所有者、所有グループの情報によってそのファイルが「どのユーザー(もしくはグループ)のもの」かが判断できます。
言い換えると、各ファイルから見るとLinux上のユーザーは下記の3パターンに分類されます。
- ファイルの所有者
- ファイルの所有グループに属しているユーザー
- 上記いずれにも該当しないユーザー
パーミッション情報には上記3パターンそれぞれのユーザーに対して「ファイルの閲覧権限
」、「ファイルの編集権限」、「ファイルの実行権限」の存否が記録されています。
記載方法は文字列による表記と8進数による表記が一般的ですが、いずれも意味は変わりません。
文字列による表記法では「ファイルの閲覧権限」、「ファイルの編集権限」、「ファイルの実行権限」をそれぞれ「r」、「w」、「x」と表記してそれを左から「ファイルの所有者」、「ファイルの所有グループに属しているユーザー」、「上記いずれにも該当しないユーザー」の順に並べます。
例えば「rwx rwx r-x」の表記は下記を意味します。
・ファイルの所有者はファイルの閲覧、編集、実行全てを行うことができる
・ファイルの所有グループに属しているユーザーはファイルの閲覧、編集、実行全てを行うことができる。
・いずれにも該当しないユーザーはファイルの閲覧・実行は行えるが、編集することはできない。
8進数表記は上述と同じ順番でビットを並べたものを8進数で表記したものになります。
上記の「rwx rwx r-x」について、まずは2進数で権限の有無を左から並べると、「111 111 101」となり、これを8進数に変換すると「0775」となります。
CMSで発生しやすいパーミッション問題
WordPressなどのCMSでパーミッションの問題が出やすいケース、CMSが自動作成したファイルをFTP経由でユーザーが編集しようとした場合や、逆にユーザーがFTPでアップロードしたファイルをCMSが変更しようとした場合の権限設定不足があります。
例えば、Redhat系のOSでApache上でWordPressを動かしていると、初期状態ではWordPressのシステムが作ったファイルはapacheというユーザーが所有者になります。また、ユーザーがアップロードしたプラグインを自動更新しようとする場合もapacheというユーザーでプラグインファイルの書き換えが行われます。
そのため、FTPでサーバー上のファイルを操作するユーザーとapacheの双方で必要なファイルを更新できるようにパーミッションを適切に設定する必要があります。
さいごに
クロジカサーバー管理では初期設定時にサイトに応じて安全なパーミッション設定を行うだけでなく、運用開始後も制作会社様と連携して必要に応じてコンテンツファイルのパーミッション確認や設定調整を行わせていただきます。
WordPressなどでパーミッションエラーの調査や調整に工数を取られる、などお悩みの際はぜひご相談くださいませ。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ