web-dev-qa-db-ja.com

Webアプリケーションに最適なchmodとowner:groupの設定は何ですか?

centOSでPHP Webアプリケーションを構成しており、現在すべてのファイルが/ var/www/html/project /にあります。

ApacheはApache:apacheとして実行するように構成されており、上記のディレクトリにアクセスできます。現在、ファイルとディレクトリには次の権限があります。

所有者=ルートグループ= Apache

ディレクトリ:drwxr-x ---ルートApache

ファイル:-rw-r -----ルートApache

これは安全な設定ですか?または、新しいユーザーを使用する方が良いですか?すべてのファイルとディレクトリの所有者になる「プロジェクト」?

4
solsol

サーバー上のファイルのアップロード/管理に使用される制限付きユーザーアカウントを所有者にすることをお勧めします。多くの場合、グループはphpが実行されているアカウントであるため、この場合はApacheが正しいでしょう。他の権限は、そのまま何にも設定しないでください。あなたは完璧に近いです。

複数のアカウントがファイルを変更/編集している可能性がある状況では、正しい所有権を維持するために、1時間ごとに再帰的にdirを変更するcronスクリプトを作成できます。同じ手法で、権限を正しく維持することもできます。

また、所有権を持つ制限付きユーザーアカウントのumaskを変更して、アクセス許可スキームに合わせることができます。

5
CarpeNoctem

あなたは間違いなくそれを安全にプレイしています。

設定により、Apacheを介してオンデマンドで必要になった場合に、ディレクトリに追加のフォルダを作成できなくなります。

次の権限を使用することをお勧めします。

DIRECTORIES: drwxrwx--- root Apache
FILES: -rw-rw---- root Apache

開発者をApacheグループに追加して、sshまたはftp経由でログインした場合に、がこれらのファイルへの書き込みを続行できるようにします。

どのユーザーがそれらを実行しているかを信頼できる場合は、自由なファイル権限を持つことができます。コードがしっかりしている場合は、Apacheグループに権限を使用してより多くのことを実行させることができます。

編集:一般的にApacheを与える:

rwx if it needs to create folders
rw if it needs to create files
r if everything is static

結局のところ、結局のところ、必要なアクセス許可を与えるだけです。それらを可能な限り保守的にし、必要に応じてアプリケーションを開発するときにそれらを開きます。

グループについての1つの小さなこと。これを示すいくつかの例が表示されます(これらも正しい設定です)。

DIRECTORIES: drwxrwxrw- root somegroup
FILES: -rw-rw-r-- root somegroup

Apache usergroup権限の一部ではないため、これらの権限はWebアプリケーションを実行するために必要です。その場合、Apacheは全員と見なされますしたがって、全員がWebサイトと対話できるようにアクセス許可を設定する必要があります。誰もが私は世界中のすべての人を意味するわけではありません(つまり匿名)。つまり、現在サーバーのユーザーであるすべての人を意味します(リストを取得するには、/ etc/passwdを調べてください)。

2
Patrick R