web-dev-qa-db-ja.com

ユーザーはPHPが自分のディレクトリにファイルを書き込めるようにすることを望んでいます

ユーザーは、PHPが自分の/ home /ディレクトリにファイルを書き込むようにしたいので、usermod -a -G www-data usernameを実行するようにアドバイスしています。ここでusernameはユーザー名です。私はそうではありませんでした。これがセキュリティの問題であったかどうかを確認してください。

これに取り組む最良の方法は何ですか?

1
ParoX

提案されたコマンドは、ユーザーをwww-dataグループに追加します。これにより、意図しない追加のアクセス許可が与えられる可能性があります。特に、www-dataグループに制限されているすべてのファイルにアクセスできるようになります。これはおそらくあなたが意図したよりもはるかに多いでしょう。

たとえば、2人のユーザーがこのリクエストを行い、www-dataグループに追加され、各ユーザーが~/www-sharedwww-dataグループに開いたとします。その後、それぞれが相手のwww-sharedディレクトリに対して読み取りと書き込みを行うことができます。

アクセス制御リストは、指定された目的に対してはるかに適切に見えます。これには、オペレーティングシステムとファイルシステムがACLをサポートしている必要があります。 Linuxでは、ファイルシステムがaclオプションでマウントされていることを確認してください。次に、ユーザーはsetfacl -m user:www-data:rwx ~/www-sharedを実行して、ディレクトリをwww-dataユーザーと共有できます。

それでも、この問題は、Webサーバーを実行している多くの人々が以前に直面したことのように聞こえます。したがって、Apacheツールボックスを含むはるかに優れたソリューションがあるかもしれません。

ユーザーwww-dataはユーザーのグループに含まれるため、これはお勧めできません。したがって、Webサーバーはこのユーザーのすべてのファイルを操作できます。

また、システム上の他のユーザーは、単純なphpスクリプトを介して、指定されたユーザーのファイルから読み取りおよび書き込みを行うことができます。

一般に、Webサーバーに必要以上の書き込み/読み取りアクセスを許可することはお勧めできません。したがって、書き込みアクセスが必要なディレクトリ(またはファイル)でのみアクセス許可を拡大したい場合があります。たとえば、これはアップロードディレクトリにすることができます。

お気に入り...

chgrp www-data /home/foobar/public_html/wordpress/uploads
chmod -R g+rwX /home/foobar/public_html/wordpress/uploads
0
Jan.