Dennis: exec()-Ausführung unter Linux funzt net!

Beitrag lesen

Hi Kerstin,

Da is nix mit reinschreiben in test.txt. Die gibts ja auch gar nicht in dem Verzeichnis. Ansonsten wär der user wohl nobody. Nur wie führe ich auf der Konsole den Befehl als nobody aus. Wie ich zu root werde, weeß ich ja. Mehr brauchte ich ja bisher nicht wissen.

Ok, das zeigt also erst mal, dass PHP (wie der Apache) als User nobody läuft - da deine Dateien kerstin:kerstin gehören, wirken die Zugriffsrechte für Welt für PHP, da du dort keinen Schreibzugriff (sinnvollerweise) gestattet hast, hast du defakto mit PHP keinen Schreibzugriff. Ok so weit.

Zu der Sache mit den Usern, das geht so:
su             # Zu root werden, dieser Schritt kann weggelassen werden, wenn du das PW des
               # nachfolgenden Users kennst
su Username    # zu Username werden, sofern als root ausgefürht, ist kein PW nötig

Ein su nobody wird allerdings scheitern, da nobody unter Debian /bin/false als Shell zugewiesen hat und du dich somit nicht also nobody einloggen kannst (Sicherheitsgründe!).

-rwxr-xr-x   1 kerstin kerstin   21 2005-10-25 10:58 phpinfo.php

Der Vollständigkeit halber: Hier wären die x-Rechte nicht notwendig, da die Datei nicht ausgeführt, sondern nur von PHP geparst wird - Leserechte wären also ausreichend.

Scheinbar war doch irgendwas falsch am Pfad, den ich sonst angegeben hab. Statt exec("whoami"); Hab ich einfach mal den Befehl so ganz da reinkopiert, und er ging.

Dann hast du definitiv in deinem anderen Script etwas falsch.

Davon mal abgesehen, dass es jetzt andere Probleme gibt, [...]

Das ist dann ein Problem der Software die du da aufrust, das hat (wie dir aber auch bewusst zu sein scheint) dann nichts mehr mit PHP tun - und weil ich die Software die du da aufrust nicht kenne, kann ich dir da dann auch nicht mehr helfen ;-)

Ob dann am Ende aber dann wirklich die AusgabeDatei wird, steht noch offen. Denn durchgelaufen ist der Befehl, wie gesehen ja noch nicht. Naja, ich bastele mal noch ein wenig weiter. Muss ja irgendwie hinzukriegen sein. Mal schaun, ob ich noch mehr im Netz dazu finde.

Diese Software wird ja aus PHP herraus aufgerufen, und wird also wohl auch als nobody ausgeführt - wenn diese Software irgendwo eine Datei erstellen/abspeichern soll, braucht nobody die Rechte dafür irgendwo eine Datei anzulegen.

MfG, Dennis.

--
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Patch zur Verwendung von PATHINFO in JLog
Mit Gesetzen ist es wie mit Würstchen - es ist besser, wenn man nicht weiß, wie sie gemacht werden. (Otto v. Bismarck)