Vhost unter seperaten UID & GID

Dieses Thema im Forum "Feature Requests" wurde erstellt von deepthrow, 9. Dez. 2009.

  1. deepthrow

    deepthrow New Member

    Hi,

    ich würde es sehr praktisch finden wenn man einen vhost über das Web-Frontend so einstellen könnte das jeder, wenn man es möchte, unter einer seperaten UID& GID läuft. Wenn man nichts einstellt, dann eben der Standard.


    Viele Grüße
     
  2. Quest

    Quest Member

    Unter ISP3 wird für jeden Kunden eine eigene GID angelegt.
    Jedes Web bekommt dann eine eigene UID in aufsteigender Reihenfolge.
    Ist also bereits so.
    Wenn du dann für ein Web statt mod_php suPHP auswählst werden die PHP Scripts mit der Berechtigung des Besitzers ausgeführt, also nicht als www-data sondern z.B. als web43.
    Hast du danach gesucht?
     
  3. deepthrow

    deepthrow New Member

    Hi,

    genau so soll es. Der Hintergrund war das wenn CMS-System installiert wird, dieses mit einem FTP-Benutzer hochgeladen wird und dann aber vom Apache User nicht zu modifizieren war. Genauso wenn z.B ein Bild hochgeladen wurde, war demnach der Besitzer www-data und nicht der FTP-User. Der FTP-User konnte es nicht löschen.

    Ich habe testweise auf suPHP umgestellt, doch dann lief komischerweise das Web garnicht mehr mit PHP. Es gibt:




    Gut, dann dachte ich, schaue ich mal wie die VHost Datei eingelegt wird und sehe den Benutzer auskommentiert:

    Gut, wie soll es auch wenn der Benutzer auskommentiert ist. Änderung vorgenommen und dem Apache nen tritt gegeben, aber dann folgendes:


    Also wird denke ich schon seinen Grund haben das der ausgeklammert wird von ISPConfig. Aber so bekomme ich nur den 500 Errorcode,


    :confused:

    Grüße
     
  4. deepthrow

    deepthrow New Member

    Hiho,

    ja das Tutorial wurde genutzt. Aber danach läuft unter jedem VHost der Apache mit www-data. Ich habs mal mit dem Script auf verschiedenen VHosts probiert:

    root@server:~# cat /var/www/xxx.de/web/test.php
    <?php
    echo system('whoami');
    ?>

    Ausgabe: www-data

    Auf welcher Seite des Tutorials wird das denn so eingerichtet? Kann ich doch nicht übersehen haben. Oder auch wo irgendwo unter /etc/apache2 wird definiert das der VHost den Benutzer des Webs nehmen soll?

    Jetzt sagte jemand, dann nimm doch einfach suPHP. Wenn ich suPHP aktiviere wird der Benutzer aber ausgeklammert. Wenn ich ihn aktviere schlägt ein force-reload fehl.

    Wobei ich glaube es ist besser wenn man nur einen Beitrag nimmt. Vielleicht die beiden einfach zusammenfassen und einen schließen.

    http://www.howtoforge.de/forum/showthread.php?p=14474#post14474

    Sorry für den Doppelbeitrag. Aber der erste war nicht gleich sichtbar irgendwie und ich dachte, dann mach doch mal nen FR. :D


    Grüße
    deep
     
  5. Quest

    Quest Member

    Wenn du den 500 bekommst müsste ein Eintrag im Error.log gemacht werden.
    Schau da mal bitte rein und poste die letzten paar Zeilen.
     
  6. Till

    Till Administrator

    Dann hast Du vergessen suexec zu aktivieren. Die rechte funktionieren bei einem apache setup wie folgt:

    mod_php => www-data
    fcgi-php ohne suexec => www-data
    cgi-php ohne suexec => www-data
    suphp => uid und gid des webs
    fcgi-php mit suexec => uid und gid des webs
    cgi-php mit suexec => uid und gid des webs
     
  7. deepthrow

    deepthrow New Member

    Hi,

    naja doch. Ich habe im ISPConfig unter Sites --> Domain --> Website suPHP aktiviert. Die VHost-Datei wird auch wie folgt richtig angepasst, nur wird der Web-Benutzer auskommentiert:

    Es klappt nur leider nicht und der 500er Fehler kommt. Ich habe es mit nur suPHP probiert und dann zusätzlich auch noch suEXEC aktiviert. Wobei es hier erstmal rein um PHP geht. Also wenn ich vor dem User die # weg nehme, klappt der force-reload für den Vhost garnicht wie oben angegeben. :rolleyes:

    @Quest

    Das ist auch merkwürdig. :confused: Ich bekomme in den Logs nichts, aber auch garnichts eingezeigt wenn ich ein: tail -f [log] mache und mehrere male hintereinander aktuallisiere. Folgende Logs habe ich geprüft:

    access.log
    other_vhosts_access.log
    error.log


    GReetz :)
     
  8. deepthrow

    deepthrow New Member

    Gelöst

    Hiho,

    Till, Du hattest vollkommen recht und es funktioniert wunderbar. Der Fehler lag bei mir und war folgender.

    Die test.php die den aktuellen Benutzers des Web´s nutzen sollte, die habe ich mit root angelegt und dann war er natürlich auch Besitzer der Datei. Nach ändern der Benutzerrechte lief es dann. Den Hinweis darauf habe ich im richtigen Log des Webs gefunden wie Quest vorgeschlagen hatte, wo ich gucken sollte, wo ich dann aber im falschen Log nachgesehen habe. Der Hinweis war:

    Viele Grüße und Danke!
    ~Tim
     

Diese Seite empfehlen