Maison  >  Article  >  Opération et maintenance  >  Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

WBOY
WBOYavant
2023-05-24 20:01:261406parcourir

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

Normalement, les serveurs sur lesquels nous exécutons des applications Web incluent des distributions Linux telles que CentOS, Ubuntu, Debian, etc. À l'heure actuelle, le contrôle des autorisations de Nginx, PHP, MySQL et d'autres applications nécessaires à la formation de l'architecture du service devient très important. Chaque service a des exigences d'autorisation différentes pour le répertoire de code. L'absence de certaines autorisations entraînera l'arrêt du service. incapable de lire, d'écrire ou d'exécuter, ce qui réduit les exigences d'autorisation et crée un risque d'intrusion et de modification.

1. Autorisations Nginx du serveur Web

Le framework en cours d'exécution de PHP est généralement combiné avec Nginx pour former LNMP ou avec Apache pour former l'architecture LAMP Ici, Nginx est utilisé comme exemple. pour décrire le service Nginx. Les autorisations requises pour s'exécuter.
Nous savons que Nginx lui-même ne peut pas analyser la syntaxe PHP, donc Nginx analysera et renverra directement les résultats pour les fichiers statiques (tels que HTML, etc.), mais pour les fichiers PHP, Nginx les transférera vers l'interpréteur PHP php-fpm pour le traitement, puis renvoie la réponse au navigateur client après le traitement.

Par conséquent, nous devons unifier les autorisations requises pour les services Nginx et PHP dans notre répertoire de code.

① Si l'utilisateur root est utilisé de manière uniforme, le compte invité général ne pourra pas accéder à l'application. Si nginx est configuré pour s'exécuter en tant que root, il y aura de grands risques de sécurité. L'identité root sera obtenue pour accéder à toutes les opérations.

Si les autorisations du répertoire de code sont uniformément définies sur rwxrwxrwx, il y aura un danger caché que les utilisateurs puissent modifier directement le répertoire de code via le navigateur.

Le meilleur moyen est donc de les classer dans un nouveau groupe d'utilisateurs et d'attribuer au groupe d'utilisateurs les autorisations nécessaires pour exécuter Nginx et PHP afin de gérer le répertoire d'autorisations pour les applications Web. Dans de nombreux cas, les équipes utiliseront le groupe d'utilisateurs www pour gérer les autorisations du répertoire de code et gérer uniformément l'utilisateur www.

Nous pouvons voir que les autorisations d'exécution divisées dans le fichier de configuration Nginx nginix.conf sont configurées sous l'utilisateur www, donc le processus enfant Nginx est également exécuté par l'utilisateur www . Vous pouvez visualiser via ps aux | grep nginx : nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

可以看到nginx的主进程是root,其余子进程均是www的用户

nginx.conf的配置:

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

二、php的权限配置

同样的,php的运行方式也是由主进程root运行,在子进程池(pool)里面配置由www用户执行,具体配置在php根目录下的etcphp-fpm.conf下,添加两行:

user = www
 group = www

即可,同样用ps aux | grep php可以查看进程使用的用户身份:

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

三、MySQL服务的权限配置

通过ps aux | grep mysql

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysqlVous pouvez voir que le processus principal de nginx est root, et les autres sous-processus sont tous des utilisateurs de la configuration www#🎜🎜 #

nginx.conf :

Comment configurer les autorisations utilisateur pour nginx, php-fpm et mysql

2. Configuration des autorisations PHP# 🎜🎜#


De même, PHP est exécuté par la racine du processus principal et est configuré dans le pool de processus enfant (pool) pour être exécuté par l'utilisateur www. La configuration spécifique se trouve dans etcphp. -fpm.conf dans le répertoire racine de PHP. code>, ajoutez deux lignes :

user www www;

Vous pouvez également utiliser ps aux | utilisé par le processus : <br>

Comment configurer les autorisations des utilisateurs pour nginx, php-fpm et mysql#🎜🎜 ##🎜🎜##🎜🎜##🎜🎜#3. Configuration des autorisations du service MySQL #🎜🎜##🎜🎜##🎜🎜#Vous pouvez voir le Service MySQL via ps aux | grep mysql Il s'exécute sous l'utilisateur mysql. Ce service nous oblige uniquement à apporter le nom d'utilisateur et le mot de passe mysql lorsque le code php se connecte à mysql. www, car la couche de données doit être isolée de la couche de logique métier pour garantir la sécurité des données sous-jacentes. L'autorisation de MySQL consiste principalement à ajouter de nouveaux utilisateurs et à diviser les autorisations dans le service MySQL, qui est utilisé pour contrôler différentes entreprises PHP afin de se connecter avec des identités avec différentes plages d'autorisations pour assurer la sécurité des données. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜# 4. Résumé#🎜🎜##🎜🎜##🎜🎜#configuration nginx : #🎜🎜#
user = www
group = www
#🎜🎜#php-fpm : #🎜🎜##🎜🎜#
drwxr-xr-x 就是755
#🎜🎜#Annuaire : #🎜🎜##🎜🎜#rrreee

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer