PHP でそのファイル/フォルダーの内容を編集できるようにする場合を除き、所有権を www-data に変更しないでください
他に何をしても、ユーザーがファイルを見つけるには、フォルダーの読み取りと実行のアクセス許可が必要です。ユーザーがファイルを読み取るには、ファイルの読み取り権限が必要です。変更時にパーミッション エラーが発生した場合は、これらの基本的に必要なパーミッションを削除できたことになります。
php アプリケーションを介してファイルを書き込んでいない場合は、所有しているファイルをそのままにしておくことができます。この状況では、世界の許可 (xx4/5) が適用されます。
ファイルの所有者をあなたのままにしておくと、ファイル権限が 644 (ファイル) のあなたは、のみ ということになります。 あなたはウェブサイトのファイルを編集できます - www-data はあなたではありません - したがって、ファイルを編集することはできません.
apache + you へのアクセスを制限し、他のすべてのアクセスをブロックしたい場合 chown -R you:www-data *
. 640 のファイル アクセス許可と 750 のフォルダー アクセス許可を使用すると、編集でき、www-data を読み取ることができます。これは、apache がグループ アクセス許可 (x4/5x) を読み取るためです。
apache/php に書き込みを許可するパスを最小限に制限します。アプリケーションが書き込みを行う必要がある tmp ディレクトリがある場合は、そのフォルダーのみに書き込みを許可します。 - また、書き込み可能な場所については、可能な限り 外側 であることを確認してください ドキュメント ルートを削除するか、この書き込み可能なパスが Web アクセスできないようにするための措置を講じてください。
「あなた」はしてはいけないことに注意してください ルートになります。 root としての直接 ssh アクセスを許可することは、他のセキュリティ失効の指標です (not パスワード ログインを禁止するなど) が、それ自体に多くの疑問があります。
<ブロック引用>
したがって、私が物事を正しく理解している場合、Apache が www-data として実行されていて、Apache がディレクトリを読み取れるようにする場合、x ビットをワールド (その他) グループ (o+x) に設定する必要があり、それも必要です。チェーン (www、var) までのすべての親ディレクトリに設定されます。また、apache がファイルから読み取れるようにするには、o+r ビットを設定する必要があります。
rwx
を設定する必要はありません。 他のために'。保護しようとしている特定のフォルダー/ファイルの所有者やグループを変更する必要があります。例:
chown -R cwd:www-data /var/www/cwd.com
chmod 750 /var/www/cwd.com
現在、グループ www-data
のメンバーのみ /var/www/cwd.com
を読めます .そして、あなた (cwd) だけがそれに書き込むことができます。アプリケーションが (Apache を介して) そのディレクトリ内のファイルを書き込み/変更できるようにする場合は、770 に chmod します。
これですべての問題がカバーされると思います。Apache を実行しているユーザーを変更する理由はありません。