NGinxとPHPはどのユーザーとして実行する必要がありますか?


15

許可は、Linuxでしばらく混乱していたものです。そのため、NGinxとPHP-FPMの両方のインスタンスがユーザーとグループで実行されています。

www-data

これは標準ですか?ファイルのアップロードに出くわすとトラブルに遭遇します。

では、ファイルはユーザーとグループwww-dataの両方でアップロードされます。現在、Webアプリケーションで許可(0440)を設定しているため、通常のアカウントでsshを介してログインしてこれらのファイルをダウンロードすることはできません。これは変更できません。

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

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

回答:


12

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

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

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


1
いい答えです。新しいユーザーと新しいフォルダーを作成し、すべてをコピーし、正しい権限を適用して、ユーザーをchrootしました。うまく動作します。ありがとうございました。
ピクセル開発者

www-data専用ユーザーを作成する代わりに、FTPユーザーをグループに追加するだけでいいですか?@ThePixelDeveloperの問題を解決しますか?ありがとう。
Vladyslav Turak

2

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

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


10
www-dataの理由は、それがゼロ特権を持つアカウントであるためです-ファイルシステム全体のファイルに書き込むことはできません。以前は、組み込みユーザー「nobody」を使用してこれを実現していました。ただし、「www-data」を作成することにより、このユーザーが一部のファイルに書き込みできるようにすることができます。これらのファイルを誰でも書き込み可能にする必要はありません(これは悪いことです)。「www-data」は他のすべての点で「nobody」と同じ特権であるという基本原則は当てはまります。
thomasrutter

@thomasrutter、私が理解していることから、www-dataグループにあるwww-dataユーザーの下でNginxとPHP-FPMを実行する必要があります。私は、このユーザができるようにしたい場合はreadwriteいくつかのフォルダに、私は彼に適切な権限を与える必要が。ほとんどの場合、これはWebルートフォルダー/var/www/html755アクセス許可です。私は正しいですか?ありがとう!
Vladyslav Turak

1

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


9
それについて詳しく説明しますか?
カルセル14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.