Apache/php: Problem mit Zugriffsrechten



  • Situation:
    o Apache mit php als modul
    o apache läuft nicht als root
    o php läuft im SafeMode

    Problem:
    Ein php-skript läuft nicht unter der uid des Skript-Besitzers.
    Wenn das Skript einen Ordner erstellt, kriegt dieser nicht die uid des skript-besitzers.
    => Der Besitzer kann den Ordner per ftp nicht löschen/chmodden
    => php vergleicht im Safemode die uid des skriptbesitzers mit der des ordners
    ==> Die sind natürlich unterschiedlich
    ===> Das Skript kann nix mit dem Ordner anfangen

    Kann man da was machen ? (Außer den apache als root laufen lassen ?)



  • Das kannst du im Apache Teil der Virtual Hosts einstellen.
    z.B.:
    User Hans
    Group Kunden



  • "The User directive sets the userid as which the server will answer requests. In order to use this directive, the standalone server must be run initially as root" (aus dem manual des apaches...)

    => Apache muss als root laufen, was ich jedoch nicht will 😃



  • Aber Apache läuft so oder so als root !
    Muss er ja auch um einen Port (80) zu öffenen !

    Also kannst du folgendes machen:
    In den VHost:
    User Hans
    Group Kunden
    Mit aufnehmen <----- das macht jedoch nur Sinn wenn du PHP als CGI Modul nutzt ansonsten bringt das nichts !!

    In der Apache 1.x Version gibt es leider KEINE Möglichkeit den Benutzer von www-data auf jeweils einen anderen Benutzer zu setzen. Nur global !!!

    ABER in der neuen Apacher 2.x Version gibt es genau dazu ein neues Modul welches einem erlaubt den Apache mit dem jeweiligen Benutzer laufen zu lassen. Dieses Modul ist jedoch noch sehr unstabil, so kann es vorkommen das es nach dem z.B. 50 mal Fehler verursacht !!!

    --- SORRY ABER IM MOMENT GIBT ES WIRKLICH KEINE MÖGLICHKEIT ----- SOLLTEST DU JEDOCH EINE FINDEN MELDE MIR DAS BITTE DEN ICH SEHE DAS AUCH ALS GROSSES PROBLEM !!!!
    --- KLEINERE SACHEN WIE DER BENUTZERNAME BEIM SENDMAIL KANN MAN JEDOCH AUCH SO IN DEN VHOSTS EINTRAGEN !!

    Greez Mensch



  • aso, der apache wird als root gestartet, bindet sich an port 80 und wechselt dann den benutzer...

    Hmm, warum gibts nicht sowas wie nen group-root. Ne Art root, der aber nur root für ne bestimmte gruppe ist.
    "www" wäre dann z.B. die Gruppe in der die webuser drin sind.
    Der apache macht sich dann zum group-root von www und kann dann die Permissions richtig setzen...

    ...ach egal. Warte ich eben bis das apache 2x modul als stabil gilt 😃



  • Also das Modul hat den Namen "MPM" !

    Aber bis Apache 2 stabil läuft, also richtig stabil dauert das bestimmt noch einige Zeit..

    Ist leider ein Problem mit den Benutzerrechten und PHP. Du kannst ja zur Not ein kleines Script schreiben welches die Rechte anpasst ... ist halt eine Notlösung ... oder darauf achten dass die Rechte immer Stimmen !!!


Anmelden zum Antworten