werbeklaus: Benutzer ändern in PHP

Hallo,
ich habe im Forum schonmal nachgefragt, kam dabei aber zu keiner befriedigenden Lösung:
Da ich nun weiter an dieser Stelle der Homepage arbeite, kommt das Problem wieder auf:

Ich habe Dateien mit PHP erstellt, welche anschließend (fragt mich nicht warum) den Benutzer "nobody" und die Gruppe "nogroup" haben. Nun würde ich sehr gerne den Benutzer wechseln, und zwar in PHP mit chown().
Leider geht das nicht:

Warning: chown() [function.chown]: Operation not permitted in [.....pfad........] on line 32

Aber ich kann mir schwer vorstellen, dass es mit PHP nicht möglich ist, den Besitzer einer Datei zu ändern! Hat jemand eine Idee, wie ich das machen könnte?
Danke,
werbeklaus

  1. Hallo werbeklaus,

    Ich habe Dateien mit PHP erstellt, welche anschließend (fragt mich nicht warum) den Benutzer "nobody" und die Gruppe "nogroup" haben.

    Vermutlich läuft PHP als nobody in der Gruppe nogroup.

    Aber ich kann mir schwer vorstellen, dass es mit PHP nicht möglich ist, den Besitzer einer Datei zu ändern!

    Theoretisch ist es möglich - aber dafür müsste PHP mit root-Rechten laufen ...

    Grüße aus Nürnberg
    Tobias

  2. echo $begrüßung;

    Ich habe Dateien mit PHP erstellt, welche anschließend (fragt mich nicht warum) den Benutzer "nobody" und die Gruppe "nogroup" haben.

    Das ist der Benutzer unter dem PHP lief. Wenn es ein Apache-Modul ist, dann ist das der Benutzer unter dem der Apache läuft.

    Nun würde ich sehr gerne den Benutzer wechseln, und zwar in PHP mit chown().
    Leider geht das nicht:

    Wie dir im angegebenen Faden erklärt wurde geht dies nicht als Normalsterblicher.

    Aber ich kann mir schwer vorstellen, dass es mit PHP nicht möglich ist, den Besitzer einer Datei zu ändern!

    Der "Übeltäter" ist das Betriebssystem, nicht PHP.

    Hat jemand eine Idee, wie ich das machen könnte?

    Lass PHP unter einem anderen Benutzer laufen. Dies wirst du vielleicht nicht können oder dürfen.
    Alternativ könntest du, wenn es dir nur um Zugriff geht, und du die Rechte hast oder sie dir verschaffen kannst, das Verzeichnis einer Gruppe zuweisen, zu der der/die andere(n) Benutzer gehört/gehören und das Gruppen-Bit setzen (chmod g+s verzeichnis). Damit werden neu angelegte Dateinen zwar vom PHP-User angelegt, gehören aber der anderen Gruppe, die dann Zugriff hat.
    Sollte all dies nicht gehen, fiele mir nur das Setzen von Lese/Schreibberechtigung für "other" durch das PHP-Script ein.

    echo "$verabschiedung $name";

  3. Hallo werbeklaus.

    Ich habe Dateien mit PHP erstellt, welche anschließend (fragt mich nicht warum) den Benutzer "nobody" und die Gruppe "nogroup" haben.

    Versuche einmal, *vor* dem Erstellen der Dateien die Zugriffsrechte per umask() zu setzen.

    Einen schönen Donnerstag noch.

    Gruß, Ashura

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    mathbr:del.icio.us/ mathbr:w00t/