Zugriffrechte

  • Hey,
    ich habe folgendes Problem.
    Ich habe ein Verzeichnis für einen vHost, dieses lautet /var/www/testsite.de
    Nun habe ich diesem Verzeichnis den Benutzer testsite.de hinzugefügt, da dieses der FTP-Benutzer ist.
    Aber jetzt braucht das Verzeichnis den Eigentümer www-data damit die Software alles Zugriffsrechte hat.
    Leider ist es mir dann nicht mehr möglich Aktionen via FTP durchzuführen.
    Gibt es eine Möglichkeit einem Verzeichnis 2 Benutzer zu zu ordnen oder wie löse ich das Problem mit Gruppen?


    Julius

  • Also ich habe nun folgendes gemacht:

    Code
    addgroup cloud
    chown root:cloud /var/www/testsite.de
    chmod 770 /var/www/testsite.de
    usermod -g cloud testsite.de
    usermod -g cloud www-data



    Das komische ist, dass der Benutzer testsite.de die Rechte hat, aber www-data leider nicht.


    Edit: Die Benutzer können beide Dateien und Ordner anlegen.
    Sie können aber keine Dateien des anderen Benutzers lesen

  • Evtl noch die chmods Rekursiv festlegen und dann noch eine umask setzen, sodass die Dateien von beiden gelesen und geschrieben werden können.


    Standardmäßig bekommt die Gruppe nur Leserechte.


    Alternativ könntest Du dir vielleicht mal FastCGI mit SuPHP anschauen.
    So kannst Du die Website unter dem gleichen Benutzer betreiben wie den FTP.

  • Ich habe nun folgendes gemacht:

    Code
    chmod -R 7770 /var/www/testsite.de


    Doch leider hat der Benutzer www-data immer noch nicht die vollen Schreibrechte.
    Wenn ich dieses setze, gehe ich damit doch ein Sicherheitsrisiko ein oder?

    Code
    chmod -R 7777 /var/www/testsite.de
  • Ich gebe Dir mal einen ganz heißen Tip!


    Beschäftige Dich mal eingehend mit php5-fpm (cgi, fastcgi) und wie man damit User in Ihr Verzeichnis sperrt.
    Mit so genannten Pools kannst Du es so konfigurieren, dass nicht www-data genutzt wird, sondern der Besitzer des Verzeichnisses/Datei (FTP-Benutzer).


    Man kann das natürlich so machen wie SIM das vorgeschlagen hat, allerdings kann man sich da auch mal ganz schnell Löcher ins System reißen und Berechtigungen vergeben, die man nicht gewollt hat. Damit möchte ich sagen, dass man da höllisch aufpassen muss und jeden Fitzel dokumentieren sollte. Einmal einer falschen Gruppe zugeordnet oder Rechte falsch vergeben, schon haben Leute Zugriff auf Verzeichnisse, die sie nicht haben dürfen. :(


    So legst Du nur einen Pool an, erstellst einen Benutzer, für ein entsprechendes Verzeichnis, mit entsprechenden Rechten, schiebst den in die Gruppe der FTP-Benutzer und schon kann er sich wirklich nur im angegebenen Verzeichnis austoben. Der Webserver läuft dann unter dem Benutzernamen, in diesem Verzeichnis, und schon hast Du alle Probleme gelöst. ;)
    Vor allem verhinderst Du damit, dass diese Benutzer in anderen Regionen stöbern, wenn Du versehentlich die Rechte falsch gesetzt haben solltest. :)


    Ein weiterer Vorteil, Deine Scripte laufen gleich noch über einen FastCGI-Manager.
    Ein weiterer Tip dazu, lass die Pools gleich über Sockets laufen.


    Infos zu PHP-FPM bekommst Du hier: Main Page


    PHP-FPM ist mittlerweile Bestandteil vom PHP 5-Core (ab der Version 5.3.3) und wird über das Paket php5-fpm installiert.

    Schöne Grüße aus der Lüneburger Heide!
    Thomas

  • Das kann man einfach so umstellen, da Du beide Konfigurationen parallel laufen lassen kannst!
    An der Grundkonfiguration ändert sich ja erst mal nichts.
    Die entsprechenden Rechte sollten ja auch schon auf den Webverzeichnissen gegeben sein, nur der Webserver muss dazu gebracht werden, unter dem Benutzer des Verzeichnisses zu laufen.
    Das passiert ja schön separat über die Pools.


    Ich würde mir für die ersten Gehversuche einen Dump-vHost anlegen und da erst mal alles testen. Besser noch Zuhause am eigenen PC, damit man weiß was man da tut.
    Und immer schön Backups machen, damit man nicht plötzlich mit leeren Händen da steht.


    Hinterher die Umstellung auf die einzelnen vHosts könnte man sich sogar mit einer batch erleichtern, vor allem wenn man viele vHosts vergeben hat.
    Da kann ich aber nicht helfen, da ich keinen Häuptling verwende, meine Server laufen mittlerweile alle über NGINX und da ist die Konfiguration doch erheblich übersichtlicher und einfacher zu handhaben. :)
    Generell dürfte es aber in der Herangehensweise kaum Unterschiede geben. ;)

    Schöne Grüße aus der Lüneburger Heide!
    Thomas