2016年10月19日
Tweet
Wordpressを利用するとき、安全性を確保することはとても重要ですよね。
ということで、以下のサイトを参考に。※今回はパーミッションだけに焦点をあてます。
※一部アクセスを制限する設定は以下で記事にしています。
2015年07月18日:Wordpress セキュリティ設定
WordPress の安全性を高める
ファイルパーミッションの変更
※以下ほとんど引用となります。
/ ルートディレクトリ
Wordpressのルートディレクトリについては、自分のユーザーアカウントのみから書き込み可能にするべきです。
/wp-admin/
WordPress 管理領域: すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-includes/
WordPress アプリケーションロジックの大部分。すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-images/
WordPress が使用する画像ファイル。すべてのファイルを自分のユーザーアカウントと Web サーバーのプロセスのみから書き込み可能にする。
/wp-content/ 内には以下が含まれる。
/wp-content/
ユーザー提供の様々なコンテンツ。開発者/en により、すべて (所有者、グループ、全体) 書き込み可能に意図されている。
/wp-content/themes/
テーマファイル。ビルトインテーマエディタを使用する場合は、Web サーバーのプロセスに書き込み権限を与える。ビルトインテーマエディタを使用しない場合は、自分のユーザーアカウントのみから書き込み可能にする。
/wp-content/plugins/
プラグインファイル。すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-content/ の他のディレクトリは、プラグイン/テーマの要求次第で異なり、パーミッションは様々である。
※上記の通り設定すると、Wordpressの管理者画面から更新を実行すると失敗する場合があります。
更新を実行するには以下の要件を満たす必要があるようです。
(a) ファイルの所有権: すべての WordPress ファイルは Web サーバーを実行するユーザーが所有する必要があります。つまり WordPress ファイルの所有者は、Web サーバーを実行するユーザーと一致する必要があります。Web サーバーのユーザー (名前は apache、web、www、nobody 等)が、WordPress ファイルの所有者である必要はありません。通常 WordPress ファイルの所有者は、元のファイルをアップロードした ftp ユーザーです。WordPress ファイルのユーザーとWeb サーバーの実行ユーザーが一致しない場合、「接続情報」を尋ねるダイアログボックスが表示されますが、ダイアログボックスに何を入力しても「いますぐ更新」ボタンを使用して更新できません。
(b) ファイルのパーミッション: すべての WordPres ファイルは Apache サーバーを実行するユーザーに対する書き込み権限、または所属するグループの書き込み権限が必要です。
更新するファイルたちは、Webサービスを実行するユーザーが所有者である必要があるみたいです。
※ちなみに僕の環境では www-data ユーザーで実行されているようでした。
そのため、Webからの更新を行う場合には、そのように設定する必要があります。
セキュリティとの兼ね合いを考えるとなかなか難しいところですね。

ということで、以下のサイトを参考に。※今回はパーミッションだけに焦点をあてます。
※一部アクセスを制限する設定は以下で記事にしています。
2015年07月18日:Wordpress セキュリティ設定
WordPress の安全性を高める
ファイルパーミッションの変更
※以下ほとんど引用となります。
/ ルートディレクトリ
Wordpressのルートディレクトリについては、自分のユーザーアカウントのみから書き込み可能にするべきです。
/wp-admin/
WordPress 管理領域: すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-includes/
WordPress アプリケーションロジックの大部分。すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-images/
WordPress が使用する画像ファイル。すべてのファイルを自分のユーザーアカウントと Web サーバーのプロセスのみから書き込み可能にする。
/wp-content/ 内には以下が含まれる。
/wp-content/
ユーザー提供の様々なコンテンツ。開発者/en により、すべて (所有者、グループ、全体) 書き込み可能に意図されている。
/wp-content/themes/
テーマファイル。ビルトインテーマエディタを使用する場合は、Web サーバーのプロセスに書き込み権限を与える。ビルトインテーマエディタを使用しない場合は、自分のユーザーアカウントのみから書き込み可能にする。
/wp-content/plugins/
プラグインファイル。すべてのファイルを自分のユーザーアカウントのみから書き込み可能にする。
/wp-content/ の他のディレクトリは、プラグイン/テーマの要求次第で異なり、パーミッションは様々である。
※上記の通り設定すると、Wordpressの管理者画面から更新を実行すると失敗する場合があります。
更新を実行するには以下の要件を満たす必要があるようです。
(a) ファイルの所有権: すべての WordPress ファイルは Web サーバーを実行するユーザーが所有する必要があります。つまり WordPress ファイルの所有者は、Web サーバーを実行するユーザーと一致する必要があります。Web サーバーのユーザー (名前は apache、web、www、nobody 等)が、WordPress ファイルの所有者である必要はありません。通常 WordPress ファイルの所有者は、元のファイルをアップロードした ftp ユーザーです。WordPress ファイルのユーザーとWeb サーバーの実行ユーザーが一致しない場合、「接続情報」を尋ねるダイアログボックスが表示されますが、ダイアログボックスに何を入力しても「いますぐ更新」ボタンを使用して更新できません。
(b) ファイルのパーミッション: すべての WordPres ファイルは Apache サーバーを実行するユーザーに対する書き込み権限、または所属するグループの書き込み権限が必要です。
更新するファイルたちは、Webサービスを実行するユーザーが所有者である必要があるみたいです。
※ちなみに僕の環境では www-data ユーザーで実行されているようでした。
そのため、Webからの更新を行う場合には、そのように設定する必要があります。
セキュリティとの兼ね合いを考えるとなかなか難しいところですね。