解決策 1:
これがどのように機能するかです:FTP/SSH 経由でログインしてファイルをアップロードすると、ファイルはあなたのパーミッションで作成されます.おそらくあなたの webroot は誰でも書き込み可能 (0777) です.これは安全ではありません.システム内のすべてのユーザーがそこに何かを書き込むことができます. PHP はさまざまなユーザー権限で実行され (それらは nginx 構成ではなく PHP-FPM 構成で指定されます)、ディレクトリは誰でも書き込み可能であるため、PHP ユーザー (www-data) もそこに書き込むことができます。ただし、このファイルの所有者は www-data であり、あなたのアカウントではありません。これらは、ファイル システムのアクセス許可レベルが異なる 2 つのアカウントです。
Webroot ディレクトリを所有し、FTP/SSH アップロードに使用され、php を実行する、最小限の権限を持つ専用ユーザーを作成することをお勧めします。PHP-FPM 構成を変更する必要があります。ワーカー セクションには、ユーザー エントリと NGINX 構成があります。これにより、Web サイトのファイルを誰でも読み取れないようにし、より安全にすることができます。
特権 (sudo 機能、docroot 以外の書き込み権限) ユーザーで PHP を実行しないでください。サーバーのセキュリティが侵害される可能性があります。
解決策 2:
www-data
ユーザーとグループは非常に標準的です。他のシステムでは www または web である可能性がありますが、考え方は同じです。専用のアカウントで Web サービスを実行します。したがって、Web サーバーが侵害された場合、攻撃者はこのアカウントが許可されているファイルにしかアクセスできなくなります。 .
ユーザーが Web サービスを管理する必要がある場合は、そのユーザーを関連するグループ (www-data) に追加するか、関連するユーザー (やはり www-data) に su (または sudo) できるようにする必要があります。