安全でない Apache + mod_userdir 構成

安全でない Apache + mod_userdir 構成

要約:mod_userdir を安全に有効にするにはどうすればよいでしょうか? (つまり、各ユーザーは ~/public_html にコンテンツを作成して提供できる必要がありますが、他のユーザーのコンテンツを直接読み取ったり、cat /home/userX/public_html/filePHP 関数 ( file_get_contents('/home/userX/public_html/file') を通じて読み取ったりすることはできません)

詳細: ユーザーに、~/public_html フォルダーにファイルをドロップしてコンテンツを提供するオプションを提供するために、Apache を mod_userdir で構成しました。ファイル アクセスを保護し、ユーザーが他のファイルを読み取れないようにするために、次の権限を構成しました。

/home/userA user.user drwx--x--x (711)  
/home/userA/public_html  user.user drwxrwx--x  (771)

www-data各ユーザーのグループに 追加しました: usermod -a -G user www-data (グループを作成し、 を含むすべてのユーザーをwww-dataそのグループに追加することもできます)

すべての設定は期待どおりに機能します。すべてのユーザーは https://server/~user からそのコンテンツにアクセスできますが、他のユーザーのファイルを読み取ることはできません。

userA@ubuntu:/home$ cat userB/public_html/index.php 
cat: userB/public_html/index.php: Permission denied

ここまでは順調です。しかし、問題は、Apache が として実行されており、/home/* 内のすべてのファイルへのグループ アクセス権を持っているため、すべてのユーザーが、、などの関数を使用しwww-dataて他のユーザーのコンテンツを読み取るための PHP ファイルを作成できることです。execsystemfile_get_contents

disable_functionsブロックに追加することで、このような関数の実行を無効にできることはわかっていますphp.iniが、これは解決策ではなくパッチだと考えています。そのため、この userdir 対応の Apache 構成を構成するには、他のより安全な方法があるはずです。これを適切に行う方法を探しましたが、適切な解決策が見つかりませんでした。

関連情報