GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Als welcher Benutzer sollten NGinx und PHP ausgeführt werden?

Lösung 1:

So funktioniert das:Wenn Sie sich über FTP/SSH anmelden und Dateien hochladen, werden diese mit Ihren Berechtigungen erstellt. Wahrscheinlich ist Ihr Webroot weltweit beschreibbar (0777), das ist unsicher - jeder Benutzer im System kann dort etwas schreiben. PHP läuft mit unterschiedlichen Benutzerrechten (sie werden in der PHP-FPM-Konfiguration angegeben, nicht in der nginx-Konfiguration), und da das Verzeichnis weltweit beschreibbar ist, kann der PHP-Benutzer (www-data) auch dort schreiben. Eigentümer dieser Datei ist jedoch www-data, nicht Ihr Konto. Sie sind 2 unterschiedliche Konten in der Dateisystem-Berechtigungsebene.

Ich schlage vor, dass Sie einen dedizierten Benutzer mit möglichst geringen Berechtigungen erstellen, der das Webroot-Verzeichnis besitzt und für den FTP/SSH-Upload verwendet wird UND php ausführen würde. Sie sollten die PHP-FPM-Konfiguration ändern, im Worker-Bereich gibt es Benutzereintrag und NGINX-Konfiguration, so können Sie Ihre Website-Dateien nicht-weltlesbar und sicherer machen.

Führen Sie PHP nicht mit privilegierten Benutzern (Sudo-Fähigkeiten, Schreibrechte außerhalb von Docroot) aus, da dies zu einer Gefährdung der Serversicherheit führen könnte.

Lösung 2:

Der www-data Benutzer &Gruppe sind ziemlich Standard. Auf anderen Systemen kann es www oder web sein, aber die Idee ist dieselbe:Führen Sie die Webdienste mit einem dedizierten Konto aus. Wenn Ihr Webserver kompromittiert wird, kann der Angreifer daher nur auf die Dateien zugreifen, denen dieses Konto gewährt wurde .

Wenn ein Benutzer die Webdienste verwalten muss, sollten Sie den Benutzer der entsprechenden Gruppe (www-data) hinzufügen oder ihm erlauben, mit su (oder sudo) an den entsprechenden Benutzer (immer noch www-data) zu senden.


Linux
  1. Was ist ein Linux-Benutzer?

  2. Soundthemen in Linux:Was jeder Benutzer wissen sollte

  3. Was ist Linux-Kernel und sollten Sie auf den neuesten Kernel aktualisieren?

  4. Installation und Einrichtung von Php und Nginx unter Ubuntu 20.04

  5. Benutzer- und Kernelzeit eines laufenden Prozesses abrufen?

Was ist UID in Linux, wie man es findet und ändert

Was ist ein Homelab und warum sollten Sie eines haben?

So installieren Sie Nginx, MySQL und PHP (LEMP) auf einem Ubuntu 15.04-Server

Was ist der Unterschied zwischen Benutzerbereich und Kernelbereich?

Was ist der MySQL-Benutzer debian-sys-maint (und mehr)?

Locate and updatedb funktioniert nicht. Was soll ich machen?