Beiträge von smares

    Ich hab leider Schwierigkeiten dir zu folgen. Die Idee über die Gruppe die Schreibrechte an Apache / PHP zu geben hatte ich auch, aber mir ist nicht ganz klar wie ich das anstelle. Wie sehen in deinem Vorschlag die Ownerships und Rechte von /var/www/* aus damit ein Benutzer in mehrere Domains schauen kann, aber nicht in Domains, die er nicht sehen darf, www-data wiederum in alle Domains? benutzerX:www-data und alle Benutzer Mitglied von www-data machen würde ja bedeuten, alle Benutzer haben Zugriff auf alle Domains.

    Ich möchte aus Sicherheitsgründen nicht, dass der Webserver und die PHP-Prozesse in sämtliche /var/www/ Verzeichnisse schreiben dürfen, sondern nur explizit wo notwendig, also z.B. in einem Uploads-Verzeichnis einer Bildergalerie, in Log-Ordnern, in Cache-Ordnern, etc. Bei Single-User-Installationen habe ich das bisher auch so geregelt, dass sämtliche Dateien innerhalb von /var/www/ root gehört haben mit 755 / 644 Berechtigungen und nur die notwendigen Ordner in denen PHP schreiben musste gehörten www-data.

    Das Szenario mit ACLs ist leider notwendig, da ich tatsächlich Benutzer habe, die mehrere Domains verwalten dürfen und umgekehrt auch einige Domains von mehreren Benutzern verwaltet werden dürfen. Meine bisherige Lösung bestand darin, dass die Benutzer sich per FTP anmelden mit der Domain als Benutzername, aber für manche Benutzer ist es zu umständlich mehrere FTP-Sessions offen zu haben.

    Hallo zusammen,

    ich suche etwas Hilfe bezüglich Dateiberechtigungen in einer Shared-Hosting-Umgebung. Dabei geht es um folgendes Szenario: Ich habe einen Server, auf dem die Daten für einige Domains gehostet werden. Diese Domains gehören verschiedenen Personen und diese Personen sollen die Möglichkeit haben Dateien hinzuzufügen, zu ändern und zu löschen. Sie sollen das natürlich nur für die Domains machen dürfen, die ihnen gehören.

    Im Verzeichnis /var/www/ gibt es verschiedene Unterordner für die jeweiligen Domains, also /var/www/domainA/, /var/www/domainB/, usw. benutzer1 hat das Recht die Daten von domainA und von domainB zu verwalten. benutzer2 nur von domainB und benutzer3 nur von domainC. Als Web-Server fungiert Apache, was als www-data läuft. Pro Domain gibt es in pool.d von PHP-FPM einen Eintrag. Die User sollen ihre Daten nur per SFTP verändern können.

    Die Idee ist folgende: Ich erstelle eine Gruppe sftp und füge benutzer1, benutzer2 und benutzer3 dieser Gruppe hinzu. In der sshd-Konfiguration setze ich für die Gruppe sftp ForceCommand internal-sftp und ChrootDirectory /var/www/. Per ACL gebe ich den entsprechenden Nutzern die entsprechenden Rechte auf die entsprechenden Ordner, also z.B.

    setfacl -Rm u:benutzer1:rwX domainA domainB
    setfacl -Rm d:u:benutzer1:rwX domainA domainB

    umask hätte ich auf 0007 (o=) gesetzt, sodass other keine Rechte kriegen kann.

    Mein Problem jetzt ist folgendes. Apache und PHP sollen natürlich weiterhin daten lesen können und in speziellen Verzeichnissen soll PHP auch Daten schreiben können, z.B. ein Upload-Verzeichnis für eine Bildergalerie oder ein Log-Verzeichnis. Ich möchte aber nicht, dass alle hochgeladenen Dateien per-se schreibbar sind vom Server-Benutzer (www-data). Ich könnte hergehen und als Ownership root:www-data rekursiv angeben für alle Verzeichnisse innerhalb /var/www/ und der Gruppe Leserechte (und für Verzeichnisse auch Ausführrechte) vergeben. Vom Benutzer neu hochgeladene Dateien gehören aber ihm (sowohl UID als auch GID). Eine Idee wäre noch den Domain-Verzeichnissen das SGID-Bit zu setzen, was aber dazu führt, dass nun alles von www-data schreibbar ist und das möchte ich ja nicht. Wie kann ich das also einrichten und zwar so, dass der Benutzer selber im SFTP-Client auch angeben kann, dass z.B. /var/www/domainA/uploads/ schreibbar ist?

    Ist das Migrieren von IP-Adressen zwischen VPS möglich? Ich plane ein Upgrade von Root-Server L auf das aktuelle Root-Server XL (andere Generation, daher Neubestellung notwendig anscheinend), habe aber zusätzliche IPs auf den Root-Server L geschaltet.