buntu 16.04でuWSGIとNginxを使用してDjangoアプリケーションを提供する方法 で作業しています。記事の「uWSGI用のsystemdユニットファイルの作成」の最後で、www-data
ユーザーについて説明しています。これは何であり、なぜ重要なのですか?
セキュリティ用
ファイルは誰でも書き込めません。それらは、書き込み用のファイルの所有者に制限されています。
Webサーバーは特定のユーザーで実行する必要があります。そのユーザーが存在する必要があります。
ルートの下で実行された場合、すべてのファイルはルートからアクセス可能でなければならず、ユーザーはファイルにアクセスするためにルートである必要があります。 rootが所有者である場合、侵害されたWebサーバーはシステム全体にアクセスできます。特定のIDを指定することにより、侵害されたWebサーバーはサーバー全体ではなくそのファイルにのみアクセスできます。
別のユーザーIDで実行することにした場合、そのユーザーは適切な特権を得るためにファイルの有効な所有者である必要があります。システム全体のファイルを個人のアカウントに所有することは、混乱を招く可能性があります。
特定のユーザーを作成すると、ファイルを認識しやすくなり、サイトに追加された新しいファイルやフォルダーにchown
するIDを認識しやすくなります。
所有者のseridまたはNameは関係ありません。何を選択または決定するかは、Webサーバー構成ファイルで構成する必要があります。
デフォルトでは、所有者の構成は、Apache2のUbuntu構成のwww-data
です。これがデフォルトの構成であるため、Webファイルに必要な所有権を簡単に把握できます。変更する場合は、サイト内のファイルを一致するように変更する必要があります。
Nginxは実行しませんが、Ubuntuリポジトリにあるため、www-data
構成がデフォルトとしてテストされていると確信しています。
www-data
は、Ubuntu(Apache、nginxなど)のWebサーバーがデフォルトで通常操作に使用するユーザーです。 Webサーバープロセスは、www-data
がアクセスできる任意のファイルにアクセスできます。他の重要性はありません。
base-passwd
ドキュメント(/usr/share/doc/base-passwd/users-and-groups.txt.gz
)から:
一部のWebサーバーはwww-dataとして実行されます。このユーザーがWebコンテンツを所有しないでください。所有していると、侵害されたWebサーバーがWebサイトを書き換えることができます。 Webサーバーによって書き込まれたデータは、www-dataが所有します。