web-dev-qa-db-ja.com

NGinxおよびPHPとして実行する必要があるユーザーは?

パーミッションは、Linuxでしばらく混乱しているものです。したがって、現時点では、NGinxとPHP-FPMの両方のインスタンスがユーザーとグループで実行されています。

www-data

これは標準ですか?ファイルのアップロードに遭遇すると、問題が発生します。

、ファイルはユーザーとグループwww-dataの両方でアップロードされます。さて、私のWebアプリケーションでパーミッション(0440)を設定する方法が原因で、通常のアカウントでssh経由でログインしてこれらのファイルをダウンロードすることができません。これは変更できません。

Nginxとphpのインスタンスを変更してグループを維持することを考えていましたが、ユーザー名で実行するように変更しました。

ここで権限を処理する正しい方法は何ですか?ありがとうございました。

15

これがどのように機能するかです:FTP/SSH経由でログインしてファイルをアップロードすると、それらはあなたの許可で作成されます。おそらくあなたのウェブルートは誰でも書き込み可能(0777)であり、安全ではありません-システムのすべてのユーザーがそこに何かを書くことができます。 PHPは異なるユーザー権限で実行され(それらはnginx構成ではなくPHP-FPM構成で指定されます)、ディレクトリは誰でも書き込み可能であるため、PHP user(www -data)もそこに書き込むことができますが、このファイルの所有者はwww-dataであり、あなたのアカウントではありません。これらは、ファイルシステム権限レベルで2つの異なるアカウントです。

最小限の権限を持つ専用ユーザーを作成することをお勧めします。これは、webrootディレクトリを所有し、FTP/SSHアップロードに使用され、phpを実行します。 PHP-FPM設定を変更する必要があります。workerセクションにはユーザーエントリとNGINX設定があります。これにより、Webサイトファイルを誰もが読めなく安全にすることができます。

PHP特権(Sudo機能、外部サイトのdocroot書き込み特権)ユーザーで実行しないでください。サーバーのセキュリティが侵害される可能性があります。

12
Kristaps

www-dataユーザーとグループはかなり標準的です。他のシステムではwwwまたはwebの場合がありますが、考え方は同じです。専用アカウントでWebサービスを実行します。したがって、Webサーバーが侵害された場合、攻撃者はこのアカウントが許可されているファイルにのみアクセスできます。

ユーザーがWebサービスを管理する必要がある場合は、ユーザーを関連グループ(www-data)に追加するか、ユーザーに関連ユーザー(まだwww-data)へのsu(またはSudo)を許可する必要があります。

2
Benoit

セキュリティ上の理由から、www-dataとして所有されているスクリプトをnginx/phpで実行しないようにしています。

1
Ed Bloom