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

Als welcher Benutzer sollten Apache und PHP ausgeführt werden? Welche Berechtigungen sollten /var/www-Dateien haben?

  1. nicht root
  2. nicht root
  3. SuEXEC
  4. Hängt davon ab. 644 für Dateien und 755 für Ordner sind ein sicherer Standard.

Ändern Sie den Besitz von nichts zu www-data, es sei denn, Sie möchten, dass PHP den Inhalt dieser Datei/dieses Ordners bearbeiten kann

Unabhängig von allem, was Sie sonst tun:Ordner benötigen Lese- und Ausführungsberechtigungen, damit der Benutzer Dateien finden kann; Dateien benötigen Leseberechtigungen, damit der Benutzer sie lesen kann. Wenn Sie beim Ändern von Dingen Berechtigungsfehler erhalten, haben Sie es geschafft, diese grundlegend erforderlichen Berechtigungen zu entfernen.

Wenn Sie keine Dateien über Ihre PHP-Anwendung schreiben, können Sie Dateien hinterlassen, die Ihnen gehören:Sie. In diesem Fall gilt die Welterlaubnis (xx4/5).

Wenn Sie die Dateien als Ihr Eigentum belassen:Sie mit Dateiberechtigungen von 644 (Dateien), würde das bedeuten, dass nur Sie können die Website-Dateien bearbeiten - www-data ist nicht Sie - also kann es die Dateien nicht bearbeiten.

Wenn Sie den Zugriff auf Apache + you einschränken und alle anderen Zugriffe blockieren möchten chown -R you:www-data * . Mit Dateiberechtigungen von 640 und Ordnerberechtigungen von 750 können Sie bearbeiten, www-Daten lesen - denn dann liest Apache die Gruppenberechtigung (x4/5x).

Beschränken Sie die Pfade, in die Sie Apache/php schreiben lassen, auf ein Minimum - wenn es ein tmp-Verzeichnis gibt, in das die Anwendung schreiben muss - erlauben Sie ihr, in nur diesen Ordner zu schreiben - und stellen Sie bei beschreibbaren Stellen sicher, dass es draußen ist das Dokumentstammverzeichnis oder ergreifen Sie Maßnahmen, um sicherzustellen, dass dieser beschreibbare Pfad nicht über das Internet zugänglich ist.

Beachten Sie, dass "Sie" nicht sollten Wurzel sein. Das Zulassen des direkten SSH-Zugriffs als Root ist ein Indikator für andere Sicherheitslücken (z. B. nicht Passwort-Login nicht zulassen), aber das ist eine ganze Reihe von Fragen für sich.


Also, wenn ich die Dinge richtig verstehe, wenn Apache als www-data läuft und ich möchte, dass Apache ein Verzeichnis lesen kann, muss das x-Bit für die Gruppe world (other) (o + x) gesetzt werden, und das muss es auch auf allen übergeordneten Verzeichnissen bis ganz nach oben in der Kette (www, var). Und wenn ich möchte, dass Apache aus einer Datei lesen kann, muss das o+r-Bit gesetzt werden.

Das stimmt nicht, Sie müssen rwx nicht setzen für andere'. Sie sollten den Eigentümer und/oder die Gruppe des jeweiligen Ordners/der Datei, die Sie schützen möchten, ändern. Beispiel:

chown -R cwd:www-data /var/www/cwd.com
chmod 750 /var/www/cwd.com

Jetzt nur noch Mitglieder der Gruppe www-data kann /var/www/cwd.com lesen . Und nur Sie (cwd) können darauf schreiben. Wenn Sie Ihren Anwendungen (über Apache) erlauben möchten, auch Dateien in dieses Verzeichnis zu schreiben/zu ändern, ändern Sie es auf 770.

Ich denke, das deckt alle Ihre Probleme ab, ich sehe keinen Grund, den Benutzer zu ändern, unter dem Apache läuft.


Linux
  1. So finden Sie MySQL-, PHP- und Apache-Konfigurationsdateien

  2. Was ist der Unterschied zwischen /bin/false und /sbin/nologin als Shell des nologin-Benutzers?

  3. Was kommt in /var?

  4. Django static_root in /var/www/... - keine Berechtigungen für collectstatic

  5. Schreibberechtigung über Filezilla sftp nach /var/www/html verweigert

Was ist ein Homelab und warum sollten Sie eines haben?

UNIX/Linux:Was ist die korrekte Berechtigung für die Verzeichnisse /tmp und /var/tmp?

Die Dateien /proc/mounts, /etc/mtab und /proc/partitions verstehen

Was ist der beste Weg, um Berechtigungen für die www-Benutzerdaten von Apache 2 in /var/www zu handhaben?

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

Sollten Websites gemäß der empfohlenen Verwendung in /var/ oder /usr/ leben?