ウェブサーバーでの作業を最も簡単にするために、次のようなことを提案します。
Sudo chown www-data:www-data /var/www -R
cd /var/www
Sudo find . -type f -exec chmod 664 {} \;
Sudo find . -type d -exec chmod 775 {} \;
私の日常のユーザーもwww-dataグループに追加しています。
私の質問は、これは愚かな/危険な許可セットですか? www-dataグループにこれらの権限を付与すると、サーバーが開かれますか?
ありがとうアレックス
通常は、www-data
ユーザーが書き込み可能なアップロードフォルダーまたは自動生成ファイルを用意します。
とにかく、ここで開いているリスクは、Webアプリケーションにバグ/脆弱性があり、攻撃者がサーバー上でコードを実行できる可能性がある場合、このコードはwww-data
(Apacheプロセスを実行しているユーザー)として実行されます。そしてそれはあなたのウェブサイトを完全に削除する可能性があります。
フォルダー全体に書き込み権限を持つことはお勧めできません。ほとんどのWebサイト(例:wordpress、joomla、magento)では、特定のフォルダー(画像のアップロード、ファイルのアップロード)に対する書き込み権限が必要です。より良い方法は、フォルダーに書き込み権限を与えることです。スクリプト(PHP、Python)の実行を許可せず、常にユーザーが適切なコンテンツをアップロードしているかどうかを確認します。たとえば、Webサイトでユーザーがアバターとして画像をアップロードできるようにしているかどうか、画像であり、偽の画像ではないかどうかを確認します。 PHPスクリプトが含まれています。Webサイトのルートに書き込み権限を持っている場合の問題は、誰かが脆弱性を見つけた場合、それを使用して新しいindex.phpファイルを作成し、Webサイトを「ハッキング」することです。
Www-dataがWebサーバーに公開されているユーザーであると想定すると、リスクが高まります。ACLによる書き込み保護が実質的に失われます。 2番目のオプション(775)も、攻撃者がマシン上でリモートからコードを実行できるリスクを高めます。
WebサーバーがPOSTリクエストなどを受け入れるように設定されていない場合、それ自体はありません。ただし、ファイルシステムへの書き込みを可能にするWebサーバーまたはそのクライアントスクリプトにバグが発生した場合(そして、PHPスクリプトの数が多いほど、これが発生する確率は1です)と、コンテンツ全体が書き込み可能になります。したがって、これは危険であり、他の代替手段を検討する必要があります。
一般ユーザーにこのディレクトリへのアクセスを許可しないでください。ユーザーがそのディレクトリから書き込みまたは実行する必要がない場合は、そのようにすることはできません。少なくとも、権限を755に制限します。このディレクトリに書き込むことができるのは、root(またはrootアクセス権を持つユーザー)とwww-dataだけです。