Probleme mit Dateirechten beim Hoster IONOS
am 30.08.2023 - 22:23 Uhr in
Kurz zur Konfiguration: Virtual Server Cloud XL bei IONOS mit Ubuntu 22.04 LTS und Plesk, Datenbank MariaDB 10.06.12 über Plesk administriert. PHP 8.1.22 (cli) über Plesk administriert.
Ein Benutzer bekommt eine Fehlerseite angezeigt, wenn ich die Dateien und Verzeichnisse ab dem Verzeichnis web/ in meiner Drupal-Installation von den Benutzern, Gruppe und Rechten so konfiguriere, wie ich es bei Drupal.org „gelernt“ habe. Im Wesentlichen:
Rechte von Dateien: User rw-, Gruppe r--, Other —
Rechte von Verzeichnissen: User rwx, Gruppe r-x, Other —
Owner ist ein lokaler Benutzer (ich) und die Gruppenzugehörigkeit ist www-data. Apache2 ist in meiner Staging-Umgebung und der Entwicklungsumgebung in der Gruppe www-data und da funktioniert es. Auf Drupal.org findet man ein feines Skript 'fix-permissions.sh’, das setzt die User, Group und die Rechte entsprechend.
Ich habe es mit der Gruppe www-data probiert. der Fehler ‘kein Zugriff’ tritt auf. Nach dem Übertragen der Daten mit FTP ist die Gruppe auf ‘psacln’ gesetzt. belasse ich es bei dieser Gruppe und setze die Rechte wie oben, bekomme ich ebenfalls die Fehlermeldung.
Es funktioniert, wenn ich die Dateirechte so belasse, wie sie nach dem FTP-Transfer sind. Aber da stehen die Rechte für Other bei Dateien auf r— und Verzeichnisse r-x, also genau so, wie sie für die Gruppe stehen. Das ist mir irgendwie zu offen.
Wähle ich die falsche Gruppenzugehörigkeit, oder gibt es etwas anderes, was ich bei dem IONOS-Server beachten muß?
- Anmelden oder Registrieren um Kommentare zu schreiben
Bei Datei-Rechten gibt es keine pauschale Lösung
am 24.11.2023 - 01:16 Uhr
Da wir Plesk nicht nutzen kann ich dazu ad hoc nicht viel schreiben. Aber die richtigen, d.h. sicheren Datei-Rechte hängen von der Gesamt-Konfiguration des Hosting-Setups ab. Das Ziel sollte sein, daß jeweils der Application Owner, der Webserver und evtl. weitere User z.B. für Backup-Zugriff nur jeweils die Dateien lesen und verändern können, wie es sinnvoll ist.
Viele Setups lassen leider auch nicht zu, daß ein Webserver eben nicht Dateien an Stellen hochladen und verändern kann, an denen dann wiederum PHP ausgeführt werden kann. Damit könnte ein Angreifer nämlich Schadcode nachladen. Und wenn der Webserver "Owner" von Files ist/wird (bei Uploads), dann hilft es auch oft nicht, wenn Owner kein Schreib-Recht hat, weil sich ein Owner dieses Schreibrecht in der Regel wieder beschaffen können. Aber auch dafür gibt es Möglichkeiten in Linux-Systemen, bei dem man z.B. via "i" Attribute die Veränderung einer Datei via Rootuser komplett sperrt. So verhindern wir in unserem eigenen Hosting-Setup z.B. daß ein User, der via SSH Key sich einloggt, selbst weitere Keys hinzufügen kann zu seinem Account.
Das Zusammenspiel zwischen Owner, Group-Zuordnungen und Others Permissions lässt sich nicht einfach von einem Setup auf ein anderes übertragen. Denn man kann Programme wie PHP, Apache und Nginx auch unterschiedliche konfigurieren so daß Sie mal mit den einen, mal mit den anderen User-Konten und Gruppen-Zuordnungen operieren. Eine Others-Freigabe bis hin zum Schreib-Recht ist dabei also nicht per se "böse", denn wenn der Zugang über die darüber liegenden Ordner nicht gegeben ist, dann heißt das eben nicht, daß jeder andere System-User darauf Zugriff hat. Gerade weil man unter Linux einer Datei nur einen Owner und eine Group zuweisen kann, ist es oft notwendig hier und dort die Others-Permissions zumindest lesend zu öffnen.
Das kann und sollte man auch mal konkret testen.
Vllt. hilt Dir das, an das Problem noch mal mit einem frischen Blick heran zu gehen.
# DrupalCenter-Moderator # https://www.drupal.org/u/c-logemann
# CTO der Nodegard GmbH: Tech. Concepts | Security + Availability Operations / Wir unterstützen IT-Abteilungen, Agenturen, Freiberufler:innen
Danke für die Antwort, ich
am 30.12.2023 - 21:11 Uhr
Danke für die Antwort,
ich habe herausgefunden, dass bei IONOS in der Standardeinstellung nginx und Apache aktiv sind. Anfragen aus dem Internet landen zunächst beim nginx, der leitet bei Bedarf (dynamische Inhalte) auf einen Apache weiter. Entsprechend ist es mit den Dateirechten nicht so simpel. Ich habe mittlerweile eine Konfiguration gefunden, die funktioniert.
Beste Grüße, Volker Zimmermann