2015年7月27日月曜日

WordPressディレクトリのパーミッションをセキュアに

http://wordpress.honobono-life.info/wp-config/wordpress%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%81%AB/


(2)Webサーバー実行ユーザーの書込み権限が必要なディレクトリ、ファイル



参考サイトによると下記があります。

・.htaccessファイル

パーマリンク設定などでWordPressから自動編集させたい場合は必要。(自動編集させたいので私は付与しました。)

・/wp-content/

ユーザーアップロードファイル、テーマ、プラグインなど。一部のプラグインなどで書込み権限が必要になる事がある。(公式サイトに必要とあったので私は付与しました)

・/wp-content/themes/

テーマファイル。WordPress管理画面のテーマエディタを使用する場合は、Webサーバープロセスによって書込み可能である必要がある。(今まで使用した事がなかったので、私は現状は付与していません。)


(3)設定変更手順



ここでは、WordPress用ディレクトリが"/var/www/html/wp"として手順を記載します。

①ディレクトリの権限を変更

/var/www/html/配下の全ディレクトリの権限を"750″にします。

find /var/www/html/ -type d -exec chmod 750 {} \;

②ファイルの権限を変更

/var/www/html/配下の全ファイルの権限を"640″にします。

find /var/www/html/ -type f -exec chmod 640 {} \;

③ファイル、ディレクトリの所有者、所有グループを変更

ファイル所有者をファイル転送ユーザー、グループをWebサーバー実行ユーザーに修正します。

chown -R ftpuse:apache /var/www/html/wp/

④.htaccessファイルの権限を変更

グループに書き込み権限を付与します。

事前確認
find /var/www/html/wp/ -name .htaccess -exec ls -al {} \;
権限変更
find /var/www/html/wp/ -name .htaccess -exec chmod 660 {} \;
事後確認
find /var/www/html/wp/ -name .htaccess -exec ls -al {} \;

⑤wp-contentディレクトリの権限変更

グループに書き込み権限を付与します。

find /var/www/html/wp/ -type d -name wp-content -exec ls -ald {} \;
find /var/www/html/wp/ -type d -name wp-content -exec chmod 770 {} \;
find /var/www/html/wp/ -type d -name wp-content -exec ls -ald {} \;

⑥不要なファイル、ディレクトリに書込み権限が付与されていないか確認

念のため④、⑤で設定した以外に書込み権限が付与されていないか確認します。

その他ユーザーに書込み権限が付与されていないか
# find /var/www/html -type d -perm -002
# find /var/www/html -type f -perm -002

所有グループに不要な書込み権限が付与されていないか
# find /var/www/html -type d -perm -020
/var/www/html/test/wp-content
# find /var/www/html -type f -perm -020
/var/www/html/wp/.htaccess

当面はこの設定にしておき、問題が発生したら必要に応じて権限を追加しようと思っています。

(2013年11月2日追記) サイトマップファイルに書込権限必要

管理画面(左サイドメニューの「設定」→「XML-Sitemap」)のサイトマップの画面を見ると、
"Result of the last build processes・・"の欄に赤字で記載されていました。
 There was a problem writing your sitemap file.
 There was a problem writing your zipped sitemap file.
Webサーバーのプロセスが書き込む事が出来ずエラーとなっているようです。

# ls -al sitemap.xml*
-rw-r—– 1 ftpusr apache 44464 Nov 2 07:28 sitemap.xml
-rw-r—– 1 ftpusr apache 5182 Nov 2 07:28 sitemap.xml.gz

ファイルの所有グループであるapacheユーザーに書込権限を付与しました。
# chmod 660 sitemap.xm

その後、管理画面で手動でサイトマップを再構築すると、エラー表示がなくなりました。

0 件のコメント:

コメントを投稿