0

パーソナライズされたowner:groupとchmodを使用してファイルを作成するようにapacheを構成したいと思います。apache +(ftp)ユーザーが操作する必要のあるWebサイトのフォルダーがあります。

実際に私は(「mygroup」はftpユーザーのグループです)を実行します

chown www-data:mygroup -R /my/website/files
chmod 770 -R /my/website/files

しかし、apache2がファイルを操作してファイルやフォルダーを作成する場合、

-rw-r--r-- 1 www-data www-data

apache2を設定するためのアイデアはありますか?

編集:Debian 6

4

2 に答える 2

1

これを行うための本当に良い方法はありません。ストック バージョンの Apache には、リクエストごとに異なるユーザーの下でワーカーを生成するメカニズムがありません。そのすべてのワーカーはユーザーの下で動作するため、別のユーザーとしてファイルを書き込むことはできません。


そうは言っても、これを回避する方法はいくつかあります。

最初の方法では、ルートとして Apache を実行する必要があります。サーバー上にあるApacheは、特権のないユーザーで実行されています。権限のないユーザーは、実行しているユーザーを変更できません。これを実行できるのは、root として実行されるプロセスだけです。Apache を root として実行する場合は、ここでマルチプロセス mod を利用できます。これにより、各 VHOST を異なるユーザー (構成で定義) で実行できるようになります。つまり、各ユーザーに独自の VHOST を設定する必要もあります。この方法は機能しますが、これを行うことでセキュリティが少し犠牲になります。

2 つ目の、より安全ですが、より「ハック」な方法は、ユーザーごとに完全に新しい個別のバージョンの Apache を実行することです。したがって、ユーザーA専用の独自の構成ファイルセットを持つApache、ユーザーB専用の独自の異なる個別の構成セットを持つ別のApacheなどがあります.Apacheの各インスタンスは異なるポートでリッスンできます(つまり、ユーザーAはポート8080でリッスンします) 、ポート 8081 の userB...)。次に、ある種のフロントエンド リバース プロキシを使用してすべてを整理し、トラフィックを適切な Apache インスタンスにルーティングできます。

于 2012-10-10T19:27:05.557 に答える
0

openSUSE または SLES で作業しているようです。もしそうなら、ファイルを見てください/etc/apache2/uid.conf...

umask の場合: 実際にはわかりません。確かに機能するのは、apache ユーザーのホーム ディレクトリの下に .profile ファイルを作成し、そこに umask を設定することです。しかし、もっとエレガントな解決策があるに違いありません!

于 2012-10-10T19:22:36.147 に答える