Martin P.: safe mode uid ändern ?

Hallo,

ich versuche mit einem script Verzeichnisse an zu legen. Das klappt an sich sehr gut .. nur das prob ist, das diese vom script angelegten Verz. dem wwwrun [UID(30)] "gehören" da der sie ja auch erstellt hat. Dann hab ich aber das problem das mein script nichts mehr machen kann, da das script ja "mir" also einen besitzer mit anderer [UID(10030)] "gehört".

das ganz prob ist wohl der safe mode, den der provider eingestellt hat .. Wenn die Verz. nicht dynamisch erzeugt werden müssten wäre das ja kein prob. aber das muss sich doch lösen lassen auch wenn safe mode an ist oder ?

ein Anruf bei dem Provider hat mich nicht weiter gebracht, der admin meinte nur ich soll eben in dem script festlegen das der ordner beim erstellen "mir" also den User mit der UID(10030) gehört. Nur hab ich keine möglichkeit gefunden ihm das zu sagen ..

denn chown() oder chgrp() kann ich ja nur als root ausführen .. und das ist weder der "apache" noch bin "ich" das.

Das Forum hier hab ich auch schon durchsucht bin aber auf keine lösung gestoßen.. falls die hier schon drin ist wäre ein link hilfreich :-)

kann mir da einer weiter helfen oder zumindes noch nen hinweiß geben .. Danke schon mal.

  1. Hallo,

    ich versuche mit einem script Verzeichnisse an zu legen. Das klappt an sich sehr gut .. nur das prob ist, das diese vom script angelegten Verz. dem wwwrun [UID(30)] "gehören" da der sie ja auch erstellt hat. Dann hab ich aber das problem das mein script nichts mehr machen kann, da das script ja "mir" also einen besitzer mit anderer [UID(10030)] "gehört".

    Hi,
    http://www.php.net/manual/en/function.mkdir.php
    http://www.php.net/manual/en/function.chown.php

    Warum soll "dein" skript nichts mehr machen können ? "Dein" Skript läuft ja auch mit der UID des Apachen und nicht mit deiner (ausser SuExec wird verwendet).

    btw. generell solltest du dir die Doku zu filesystem befehlen mal ansehen:
    http://www.php.net/manual/en/ref.filesystem.php

    lg
    Ludwig

    1. Warum soll "dein" skript nichts mehr machen können ? "Dein" Skript läuft ja auch mit der UID des Apachen und nicht mit deiner (ausser SuExec wird verwendet).

      hI Ludwig,

      Nun wenn ich mein script frage mit getmyuid() dann bekomme ich die UID(10030) aber das Verz. das dieses Script erstellt hat bekommt die UID(30) "wwwrun".

      http://www.php.net/manual/de/function.getmyuid.php

      das script soll in diesem ersten Verz. (z.b. /bilder) noch ein unterverz. (z.b. /thumbs) erstellen. so und genau das darf das script ja dann nicht weil das erste (bilder) verz. ja dem user wwwrun gehört ( chmod dieses verz. ist so gar 777 ich weiß ist ganz schlecht aber zum testen soll es mal so bleiben)

      und dein tipp mit der php manual seite ist super wo denkst du das ich mich die ganze zeit aufhalte ?

      1. das script soll in diesem ersten Verz. (z.b. /bilder) noch ein unterverz. (z.b. /thumbs) erstellen. so und genau das darf das script ja dann nicht weil das erste (bilder) verz. ja dem user wwwrun gehört ( chmod dieses verz. ist so gar 777 ich weiß ist ganz schlecht aber zum testen soll es mal so bleiben)

        Daß der Safe Mode so weit geht, hätte ich auch nicht gedacht. Wie dem auch sei: Du hast ein Problem :) Die Sache mit dem "Ich bin jetzt mal ein anderer Benutzer", die Dir der angebliche "Admin" (war's nicht eher ein Callcenterwilli?) vorgeschlagen hat, kannst Du vergessen. Du hast als Otto Normaluser weder die Möglichkeit, mal eben (lies: ohne Passwortangabe) die Identität zu wechseln, noch kannst Du anderen Nutzern eine Datei unterjubeln.

        Dir bleibt wahrscheinlich nur übrig, über die CGI-Schnittstelle ein Miniprogramm auszuführen, welches Dir die gewünschten Verzeichnisse erstellt. Der Aufruf des Skriptes erfolgt (bei Apache/PHP) über die Funktion virtual(), die Art interne HTTP-Anfrage an den Webserver stellt. Das könnte etwa so aussehen:

        virtual("/cgi-bin/makedir.cgi?pfad=bilder;name=bla;name=blo;name=bli");

        ..um die drei Verzeichnisse bla, blo und bli im Verzeichnis bilder zu erstellen. Mit Perl ist das wegen der Verarbeitung der URL-Parameter wohl am einfachsten, es geht aber sicher auch irgendwie als Shellskript.

        Ist hässlich, aber geht wohl nicht anders.

        Gruß,
          soenk.e