So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

WBOY
Freigeben: 2023-05-24 20:01:26
nach vorne
1451 Leute haben es durchsucht

So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

Normalerweise umfassen die Server, auf denen wir Webanwendungen ausführen, Linux-Distributionen wie CentOS, Ubuntu, Debian usw. Zu diesem Zeitpunkt ist die Berechtigungskontrolle von Nginx, PHP, MySQL und anderen Anwendungen, die zur Bildung der Dienstarchitektur erforderlich sind, sehr wichtig. Jeder Dienst hat unterschiedliche Berechtigungsanforderungen für das Codeverzeichnis nicht in der Lage zu lesen, zu schreiben oder auszuführen, was die Berechtigungsanforderungen senkt und das Risiko von Eingriffen und Änderungen birgt.

1. Webserver-Nginx-Berechtigungen

Das Betriebssystem von PHP wird normalerweise mit Nginx kombiniert, um LNMP zu bilden, oder mit Apache, um eine LAMP-Architektur zu bilden. Hier wird Nginx als Beispiel verwendet, um die Berechtigungen zu beschreiben, die zum Ausführen des Nginx-Dienstes erforderlich sind.
Wir wissen, dass Nginx selbst die PHP-Syntax nicht analysieren kann, daher analysiert Nginx die Ergebnisse für statische Dateien (wie HTML usw.) direkt und gibt sie zurück. Bei PHP-Dateien überträgt Nginx diese jedoch zur Verarbeitung an den PHP-Interpreter php-fpm. Geben Sie die Antwort nach der Verarbeitung an den Client-Browser zurück.

Daher müssen wir die für Nginx- und PHP-Dienste erforderlichen Berechtigungen in unserem Codeverzeichnis vereinheitlichen.

① Wenn der Root-Benutzer einheitlich verwendet wird, können allgemeine Gastkonten nicht auf die Anwendung zugreifen. Wenn Nginx für die Ausführung als Root konfiguriert ist, besteht ein großes Sicherheitsrisiko. Nach dem Angriff wird die Root-Identität abgerufen alle Vorgänge auf dem System.

Wenn die Berechtigungen des Codeverzeichnisses einheitlich auf rwxrwxrwx festgelegt sind, besteht die versteckte Gefahr, dass Benutzer das Codeverzeichnis direkt über den Browser ändern können.

Der beste Weg besteht also darin, sie einer neuen Benutzergruppe zuzuordnen und der Benutzergruppe die erforderlichen Berechtigungen zum Ausführen von Nginx und PHP zuzuweisen, um eine Berechtigungsverzeichnisverwaltung von Webanwendungen zu erreichen. In vielen Fällen verwenden Teams die www-Benutzergruppe, um Codeverzeichnisberechtigungen zu verwalten und Benutzer www einheitlich zu verwalten.

Wir können sehen, dass die in der Nginx-Konfigurationsdatei nginix.conf unterteilten Ausführungsberechtigungen unter dem www-Benutzer konfiguriert sind, sodass der untergeordnete Nginx-Prozess auch vom www-Benutzer ausgeführt wird, der über ausgeführt werden kann ps aux |. grep nginx zum Anzeigen: nginix.conf里面划分的运行权限就是配置到了www用户下,因此Nginx的子进程也是由www用户执行,可以通过ps aux | grep nginx来查看:

So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

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

nginx.conf的配置:

So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

二、php的权限配置

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

user = www
 group = www
Nach dem Login kopieren

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

So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

三、MySQL服务的权限配置

通过ps aux | grep mysql

nginx , php-fpm und So konfigurieren Sie die Benutzerberechtigungen von MySQL

So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQLSie können sehen, dass der Hauptprozess von Nginx Root ist und die anderen Unterprozesse alle Benutzer von www

nginx.conf-Konfiguration sind: So konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL

2. PHP-Berechtigungskonfiguration

Ebenso wird PHP vom Hauptprozessstamm ausgeführt und im untergeordneten Prozesspool (Pool) für die Ausführung durch den WWW-Benutzer konfiguriert. Die spezifische Konfiguration befindet sich unter etcphp -fpm.conf im PHP-Stammverzeichnis. Fügen Sie einfach zwei Zeilen hinzu:

user www www;
Nach dem Login kopieren

Sie können auch ps grep php verwenden, um die vom Prozess verwendete Benutzeridentität anzuzeigen 🎜 Sie können sehen, dass der MySQL-Dienst unter dem MySQL-Benutzer ausgeführt wird. Für diesen Dienst müssen wir nur den MySQL-Benutzernamen angeben und Passwort, wenn der PHP-Code eine Verbindung zu MySQL herstellt, muss er nicht mit www vereinheitlicht werden, da die Datenschicht von der Geschäftslogikschicht isoliert werden muss, um die Sicherheit der zugrunde liegenden Daten zu gewährleisten. Die Autorisierung von MySQL dient hauptsächlich dem Hinzufügen neuer Benutzer und der Aufteilung von Berechtigungen im MySQL-Dienst, der zur Steuerung verschiedener PHP-Unternehmen verwendet wird, um eine Verbindung mit Identitäten mit unterschiedlichen Berechtigungsbereichen herzustellen, um die Datensicherheit zu gewährleisten. 🎜🎜🎜🎜🎜🎜🎜 IV. Zusammenfassung 🎜🎜🎜nginx-Konfiguration: 🎜
user = www
group = www
Nach dem Login kopieren
🎜php-fpm: 🎜🎜
drwxr-xr-x 就是755
Nach dem Login kopieren
🎜Verzeichnis: 🎜🎜rrreee

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Benutzerberechtigungen für Nginx, PHP-FPM und MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage