/var/wwwにあるファイルをwww-dataに所有させるには、ファイルをrsyncする方法を教えてください。

/var/wwwにあるファイルをwww-dataに所有させるには、ファイルをrsyncする方法を教えてください。

新しいec2 Ubuntuボックスを設定し、apacheとphp5をインストールしました。デフォルトでは、権限をubuntu持つユーザーとしてボックスにログインしますsudo

私はApacheがrootphp5のように実行されていると思いますwww-data

問題がなければ、フォルダは755に、ファイルは644に設定してすべてのファイルを/var/wwwchown'edしたいと思います。www-data:www-data

これにより問題はうまく機能しますが、問題は、rsyncラップトップからサーバーにファイルを送信すると所有権が変更され、新しいファイルが追加されることです。ubuntu:admin

マニュアルを読んでrsyncGoogleを検索しましたが、次の構文を見ました。

rsync -avzcO (source) (destination) --owner=www-data --group=www-data

--ownerただし、およびは--group引数なしで使用されるように見え、代わりにリモートファイルがローカルファイルシステムと同じ所有者を持つように強制するために使用されます(rsyncがスーパーユーザーとして実行されている場合)。

そのため、rsync中にリモートユーザーとファイルグループを設定するためにrsyncを使用するソリューションを見つけることができませんでした。

私は何が間違っていましたか?

アイデア:

  • / var / wwwの私のファイルが属している必要がありますかubuntu:admin
  • たぶん私のrsync構文が間違っているかもしれません。
  • ユーザーとしてrsyncを実行できるようですが、www-data良い考えではないようです。
  • 共有ホスティングのようにsuPHPを使用できますが、面倒です。

ベストアンサー1

www-dataが所有したくありません。 Apacheは最初にrootとして実行され、次にwww-dataの権限を放棄します。 Apacheプロセスを所有しているユーザーがWebコンテンツに書き込みをしたくありません。これによりセキュリティホールが発生します。

Apacheが破損した場合、理想的にはwww-dataユーザーはどのシステムにもアクセスできません。これが最も安全な構成です。 Webコンテンツがwww-dataの所有であり、Apacheが破損した場合、攻撃者はWebコンテンツを上書きする可能性があります。

nobodyお客様のウェブコンテンツは、一般ユーザー(およびwww-data除く)が所有する必要がありますroot。ただ必要Apacheで使用できるコンテンツはwww-dataの所有者である必要があります。

おすすめ記事