www-data Rechte

ClocxHD

Lt. Junior Grade
Registriert
Aug. 2014
Beiträge
376
Hallo,

jedesmal, wenn ich z.B. per FTP etwas auf meinen Server in den www-Ordner kopiere, muss ich den Befehl
Code:
chown -R www-data:www-data Ordner
ausführen, um keinen 403 Error zu bekommen.
Bei meinem Webspace muss ich das nicht.

Wie kann ich das ändern?

Benutze Nginx als Reverse-Proxy, und Apache, um die Dateien auszuliefern.

LG
ClocxHD
 
Das geht ein bisschen schwer, da ich eingestellt habe, dass sich nur die ftpbenutzer-Gruppe anmelden darf...
Meine Config:
Code:
# Ftp user doesn't need a valid shell
<Global>
    RequireValidShell off
</Global>
# If desired turn off IPv6
UseIPv6 off
# Default directory is ftpusers home
DefaultRoot ~ ftpbenutzer
# Limit login to the ftpuser group
<Limit LOGIN>
    DenyGroup !ftpbenutzer
</Limit>
 
Zuletzt bearbeitet:
Vielen dank, hat funktioniert.

Habe den Benutzer folgendermaßen einer zweiten Gruppe hinzugefügt:
Code:
addgroup benutzer gruppe

Denn wenn man es mit
Code:
usermod  -g www-data user
macht, wird die andere Gruppe überschrieben.
Ob es funktioniert hat, kann man mit folgenden Befehl überprüfen:
Code:
groups benutzername
 
Die weitaus bessere (sicherere, stabilere,...) Lösung wäre, deine Webseiten NICHT unter www-data laufen zu lassen.

Für Apache: Entweder du nutzt SuEXEC, das geht bei jedem Process Manager, oder du verwendest MPM-ITK. Der Vorteil an MPM-ITK ist, dass es echt IDIOTENSICHER ist. In der VHost-Config gewünschten Benutzer & Gruppe angeben, fertig. Läuft vor allem auch mit Sachen wie Mod-PHP. Für PHP-FPM (oder andere FastCGI - Lösungen) muss es dann SuEXEC sein.

Warum sollte man Seiten NICHT über www-data ausliefern lassen? Angenommen, du betreibst 3 unabhängige VHosts (z.B. ne Owncloud, ein CRM und ein Webmail-System), und eines dieser Systeme hat eine Lücke. Wenn alle 3 www-data gehören, kann der Angreifer jetzt über eine Lücke in Owncloud dein Webmail-System angreifen. Wenn jedes einem spezifischen User gehört, kann nix dergleichen passieren.
 
Vielen dank, dass du mich darauf hinweist.
Werde mich morgen mal dran setzen
 
Code:
#!/bin/bash
find . -type f -print0 | xargs -0 chmod 644
find . -type d -print0 | xargs -0 chmod 755
chown -R www-data:www-data /var/www

Das Script musst du irgendwo abspeichern, ausführbar machen und jede Minute als Crontab laufen lassen. Wenn du per FTP was in ein Verzeichnis kopieren willst was der Webserver darstellen soll, so würde ich den Webserver mit dem gleichen User laufen lassen wie den FTP User. Ich z.b hab den User web und die Gruppe web. Du musst dem User web das Homeverzeichnis /var/www zuweisen. Dann musst du in der /etc/apache2/envars

export APACHE_RUN_USER und APACHE_RUN_GROUP von www-data auf web ändern.

Ich hab sogar noch einen Samba Share einbauen können. So kann ich von meinem Windows Rechner Dateien direkt in den "Webspace" kopieren aber bei mir steht der Server auch bei mir zuhause was bei dir vermutlich nicht so ist.

Bezüglich Sicherheit. Fail2ban regelt. Alles was mehr als 3 Versuche braucht wird für 3 Stunden gebannt.
 
Bei mir sowohl als auch.
Werde das erst auf meinem Homeserver testen, dann auf meinen root
 
Zurück
Oben