2

私は、Ubuntu11.10上のPHP5.3を使用してApache2.2で本番環境で実行されているCodeIgniterアプリを持っています。それが重要な場合は、PHP5-APCも実行しています。したがって、アプリwww-data:www-dataはデフォルトのApache2インストールに従って実行されます。

ファイルのアクセス許可を何に設定するかを理解しようとしています。SOの多くのスレッドは755、ディレクトリと644ファイルを好むようです。ファイルのアップロードを許可する必要のあるディレクトリが1つあります。

現在、私の展開スクリプトは次のようなことをしています。

  • 古いサイトをワイプ
  • 新しいサイトをコピーする
  • chmod -R 000新しいサイトで
  • chmodにすべてのディレクトリ500
  • chmodすべてのファイルを400
  • chmod 700アップロードディレクトリ

すべてが正常に機能しているようです。ファイルなどをアップロードできるので、なぜ人々がファイルを提案するのかわかりません644-パスワードとAPIキーを含む構成ファイルがあります-なぜ「他の人」に読み取りアクセス権を持たせたいのですか?

私は何を誤解していますか?

4

3 に答える 3

3

ええと、主に644パーミッションは/var/www/site1.com、異なるユーザーとグループセットを使用している場合に使用されます。www-dataこれ644は、他のグループとユーザーがそのファイルから読み取ることを許可しますが、ファイルの所有者の読み取り書き込みを許可するためです。

デフォルトでは、ファイルをアップロードしてapacheのプロセスを実行するユーザーはwww-data、正直に言って、それが機能し、問題がなければ、セキュリティが少し向上するので素晴らしいと思います。

アップデート

ほんの小さなセキュリティ問題は、サービスがプロセスを実行するwww-dataための非常に一般的なユーザーおよびグループになっていることです。http各サイト/アプリに独自のユーザーとグループを用意することを強くお勧めします。

于 2012-08-13T10:18:04.053 に答える
2

*44および*55は、ファイル/フォルダーが他のユーザーによって読み取り可能であることを意味します。

たとえば、ファイルをWebサーバーにアップロードしたが、何らかの理由でファイルが他の誰か(たとえば、自分のログインアカウント)によって所有されていた場合、Apacheはファイルを読み取ることができ、「大騒ぎ」はありません。または、ファイルにアクセスできるようにするために複数のグループが必要な場合。

apacheユーザーとしてファイルをアップロードしていることがわかっていて、apache(またはwww-dataで実行されるプログラム)だけでファイルの読み取り/書き込みができる場合は、*00で十分です。もう少し安全だと主張することもできます。

Linuxコマンドラインで何をしているのかわからない人にとって、644と755は「便利」と「安全」の適切な組み合わせです(ただし、完全に議論の余地があります)。修理。

于 2012-08-13T10:19:35.897 に答える
2

共有ホスティングを行う場合、FTP 経由で php ファイルをアップロードするユーザー アカウントがあります。そのため、ユーザー「joe」が自分の .php ファイルをアップロードすると、そのファイルは「joe」によって所有され、スクリプトを実行するために Apache がそれを読み取る必要がある場合、それはできません。ユーザーは通常 "users" グループに属しているため、グループに権限を与えるだけでは十分ではありません。そのため、ユーザー「www-data」が「joe」によってアップロードされたファイルを読み取れるように、全員に権限を与える必要があります。

もちろん、独自のサーバーを実行している場合は、完全に制御でき、これは問題ではありません。

于 2012-08-13T10:24:27.377 に答える