GNU/Linux >> Linux の 問題 >  >> Linux

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

解決策 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) できるようにする必要があります。


Linux
  1. Linuxカーネルとは何ですか?最新のカーネルにアップグレードする必要がありますか?

  2. Ubuntu20.04へのPhpとNginxのインストールとセットアップ

  3. xdebug.ini と php.ini の違いは何ですか?

  1. Linux で実行している PHP のバージョンを確認するには?

  2. root と sudo の違いは何ですか?

  3. phpmyadmin と suphp の実行

  1. 現在実行中のcronタブを一覧表示して停止する

  2. Apache と PHP はどのユーザーとして実行する必要がありますか? /var/www ファイルにはどのような権限が必要ですか?

  3. Locate and updatedb が機能しません。私は何をすべきか?