私は自動的にサーバー上のすべてのワードプレスのインストールでファイルのアクセス許可を確認するためのスクリプトを書いています。
この文書 http://codex.wordpress.org/Hardening_WordPress は、ある時点では不明瞭です。
/ wp-content /
ユーザー提供のコンテンツ:ユーザーアカウントおよびWebサーバープロセスによって書き込み可能にすることを目的としています。/wp-content /の中には、
/ wp-content/themes /
テーマファイル組み込みのテーマエディタを使用する場合は、すべてのファイルがWebサーバープロセスによって書き込み可能である必要があります。組み込みのテーマエディタを使用したくない場合は、すべてのファイルを自分のユーザアカウントでのみ書き込み可能にすることができます。
/ wp-content/plugins /
プラグインファイル:すべてのファイルはあなたのユーザーアカウントによってのみ書き込み可能であるべきです。
上記の文書は(すべての文脈において)正しく完全なものですか?信頼できますか?
もしそうなら、それは何を言いますか:
私はそれが最初のことを言うと思います..しかしアップロードフォルダは言及されていません、そしてそれは確かに、ウェブサーバーによって書き込み可能であるべきですか?
編集:質問を少し言い換えました
これにはいくつかの側面があります。それが理想的には、が実質的に、そして通常が実質的にであるべきものです。
WordPressでファイルを書くことへの2つのコンテキストがあります。
ここで最も困難なシナリオは、uploads
のみが書き込み可能であるということです。さもなければ中心的な機能性は壊れ始めます。
しかし、プラグインはそれとあいまいになり、すべてのwp-content
が書き込み可能であると想定するかもしれません。
これは適切な書き込み方法ですが、それが必要な場合はFTP認証情報を要求するため、エンドユーザーにとっても困難です。
これはすべてを書くことができる必要があります、または(再び)コア機能性はより大きく、そしてより大きな方法で壊れます(更新など)。
要約すると、
chgrp www-data .htaccess
chmod a-wx .htaccess
WordPressは、ある時点で.htaccess
にルールを記述する必要があります。通常は、URLがどのように表示され、書き直されるかを処理するためです。 www-data
グループには書き込みアクセス権が必要な場合があります。
これはどうしたらよいでしょうか。
# you own everything
chown -R [user].[user] * .htaccess
# others and group may not write anywhere
chmod -R og-w *
# execute permissions on dirs only
chmod -R a-x *
chmod -R a+X *
# webserver co-owns htaccess
chgrp www-data .htaccess
chmod a-wx .htaccess
chmod u+w .htaccess
# webserver co-owns wp-content and below
chgrp -R www-data wp-content
# webserver may write in wp-content itself
chmod g+w wp-content
# webserver may write in and below uploads
chmod -R g+w wp-content/uploads
# ------------
# custom exceptions below this
# ------------
# webserver may write in htaccess (optional)
# chmod g+w .htaccess
# webserver may write in and below themes (optional)
# chmod -R g+w wp-content/themes