ホームページ  >  記事  >  運用・保守  >  nginx、php-fpm、mysql のユーザー権限を設定する方法

nginx、php-fpm、mysql のユーザー権限を設定する方法

WBOY
WBOY転載
2023-05-24 20:01:261406ブラウズ

nginx、php-fpm、mysql のユーザー権限を設定する方法

通常、Web アプリケーションを実行するサーバーには、CentOS、Ubuntu、Debian などの Linux ディストリビューションが含まれています。現時点では、サービス アーキテクチャを形成するために必要な Nginx、PHP、MySQL などのアプリケーションの権限制御が非常に重要です。各サービスには、コード ディレクトリに対する権限要件が異なります。特定の権限が不足すると、サービスはサービスを実行できなくなります。これにより、アクセス許可の要件が緩和され、侵入や改ざんのリスクが生じます。

1. Web サーバーの Nginx 権限

PHP の実行フレームワークは、通常、Nginx と組み合わせて LNMP を形成するか、Apache と組み合わせて LAMP アーキテクチャを形成します。ここでは、Nginx を例として説明します。 Nginx サービスを実行するために必要なもの。
Nginx 自体は PHP 構文を解析できないことがわかっているため、静的ファイル (HTML など) については Nginx が直接解析して結果を返しますが、PHP ファイルについては、Nginx はファイルを PHP インタープリタ php-fpm に転送します。処理後、応答がクライアントのブラウザに返されます。

したがって、コード ディレクトリ内の Nginx サービスと PHP サービスに必要な権限を統合する必要があります。

① root ユーザーが一律に使用される場合、一般のゲスト アカウントはアプリケーションにアクセスできなくなります。nginx が root として実行されるように設定されている場合、大きなセキュリティ リスクが発生します。一度攻撃されると、root ID が攻撃されます。システム内のすべてを実行するために取得されます。

コード ディレクトリの権限が一律に rwxrwxrwx に設定されている場合、ユーザーがブラウザを通じてコード ディレクトリを直接変更できるという潜在的な危険が存在します。

したがって、最善の方法は、それらを新しいユーザー グループに分類し、そのユーザー グループに Nginx と PHP の実行に必要な権限を割り当てて、Web アプリケーションの権限ディレクトリ管理を実現することです。多くの場合、チームは www ユーザー グループを使用してコード ディレクトリのアクセス許可を管理し、ユーザー www を均一に管理します。

Nginx 設定ファイル nginix.conf このファイルに分割された実行権限は www ユーザーの下で設定されているため、Nginx の子プロセスも www ユーザーによって実行されます。 ps aux | grep nginx を表示するには:

nginx、php-fpm、mysql のユーザー権限を設定する方法

nginx のメイン プロセスが root で、他のサブプロセスが次のプロセスであることがわかります。 www

nginx.conf 設定のすべてのユーザー:

nginx、php-fpm、mysql のユーザー権限を設定する方法

2. PHP 権限設定

同じ、php 実行モードもメイン プロセス ルートによって実行されます。子プロセス プール (プール) の設定は www ユーザーによって実行されます。具体的な設定は etc\php-fpm.conf にありますphp ルート ディレクトリの に 2 行を追加します。 :

user = www
 group = www

ps aux | grep php を使用して、プロセスで使用されるユーザー ID を表示することもできます:

nginx、php-fpm、mysql のユーザー権限を設定する方法

3. MySQL サービスの権限設定

ps aux | grep mysql を通して、次のことがわかります。 MySQL サービスは mysql ユーザーの下で実行されています。このサービスでは、php コードが mysql に接続するときに、mysql のユーザー名とパスワードを持ってくるだけです。データ層は www として統一する必要があるため、www として統一する必要はありません。基盤となるデータのセキュリティを確保するために、ビジネス ロジック層から分離する必要があります。 mysql の承認は主に、新しいユーザーを追加し、mysql サービスで権限を分割することです。これは、データのセキュリティを確保するために、さまざまな PHP ビジネスが異なる権限範囲を持つ ID に接続するように制御するために使用されます。

nginx、php-fpm、mysql のユーザー権限を設定する方法

#4.概要

nginx 設定:

user www www;

php-fpm:


user = www
group = www

ディレクトリ:


drwxr-xr-x 就是755

以上がnginx、php-fpm、mysql のユーザー権限を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。