
読みましたLinux ウェブサーバー上のウェブサイトのファイル/フォルダーにはどのような権限が必要ですか?そしてここに関連する質問があります。例えば、
/var/www/bobweb/
所有者はbob:bob
/var/www/eveweb/
所有者はeve:eve
各サイトにはApache VirtualHostがあり、bobweb.comそしてウェブ。
各 Web サイトは Apache によって書き込み可能である必要があります (両方の Web サイトに画像アップローダーがあります)。そのため、私はよく次のように読みます。
「
chgrp -R www-data /var/www/bobweb/
イブと同じように、ただやるだけよ!」
これは与える:
drwxrwx--- 3 bob www-data 4096 Jan 9 17:45 bobweb
drwxrwx--- 5 eve www-data 4096 Feb 26 2019 eveweb
これにより、Bob がシェル/SSH から Eve のファイルにアクセスできなくなり、その逆も同様になります。
しかしEve は PHP スクリプト ( によって実行されるwww-data
) を記述して読み取り (または変更) することができたようです/var/www/bobweb/wp-config.php
(つまり Bob の DB パスワードを盗むことができたのです)。
質問: Bob が Eve のファイルを読み取れないように、またその逆もできないように、ユーザー + グループの所有権と権限を変更しながら、Apache + PHP がこれらの Web サイトにデータを書き込めるようにするにはどうすればよいでしょうか。
(典型的な共有ホスティングの状況)
答え1
これはファイル権限だけでは完全には実行できません。jail を作成するには、実行しているアプリケーションを確認する必要があります。PHP の場合は、"オープンベースディレクトリ「仮想ホストごとに」
FTP サーバーでも同様のことが必要になります (どのサーバーを使用しているかは指定していませんが、多くの/ほとんどのサーバーには適切なディレクティブがあります)。
もちろん、CGI を許可すると、問題領域全体が変わります。