
ich habe gelesenWelche Berechtigungen sollten meine Website-Dateien/-Ordner auf einem Linux-Webserver haben?und hier ist eine verknüpfte Frage. Sagen wir:
/var/www/bobweb/
gehörtbob:bob
/var/www/eveweb/
gehörteve:eve
und dass jede Site einen Apache VirtualHost hat, der verknüpft ist mitwww.bobweb.comUndwww.eveweb.com.
Jede Website muss für Apache beschreibbar sein (auf beiden Websites gibt es einen Bild-Uploader), daher lese ich oft:
„Machen Sie einfach
chgrp -R www-data /var/www/bobweb/
dasselbe für Eve, und das ist alles!“
Das gibt:
drwxrwx--- 3 bob www-data 4096 Jan 9 17:45 bobweb
drwxrwx--- 5 eve www-data 4096 Feb 26 2019 eveweb
Dies verhindert tatsächlich, dass Bob von einer Shell/SSH aus auf die Dateien von Eve zugreift und umgekehrt.
Aberes scheint, dass Eve ein PHP-Skript (ausgeführt von ) schreiben könnte, www-data
um es zu lesen (oder sogar zu ändern) /var/www/bobweb/wp-config.php
(und so Bobs DB-Passwort zu stehlen!).
Frage: Wie kann ich die Benutzer- und Gruppeneigentümerschaften und -berechtigungen ändern, um zu verhindern, dass Bob die Dateien von Eve liest und umgekehrt, Apache und PHP aber dennoch das Schreiben von Daten auf diese Websites gestatten?
(typische Shared-Hosting-Situation)
Antwort1
Dies kann nicht allein mit Dateiberechtigungen erreicht werden. Sie sollten sich die von Ihnen ausgeführten Anwendungen ansehen, um Jails zu erstellen. Für PHP können Sie "open_basedir" auf Basis der einzelnen virtuellen Hosts.
Sie möchten sicher auch etwas Ähnliches auf Ihrem FTP-Server (Sie haben nicht mitgeteilt, welchen Server Sie verwenden, aber viele/die meisten haben eine entsprechende Anweisung).
Wenn Sie CGIs zulassen, ändert sich natürlich der gesamte Problembereich.