Zugriff aufs System [PHP]

Post Reply
Message
Author
stingway
Posts: 164
Joined: 06. Jul 2001 16:49

Zugriff aufs System [PHP]

#1 Post by stingway »

Hallo zusammen,
ich versuche gerade ein kleiens Toll für meinen Linux Netzwerk rechner zu programmieren, mit dem ich den Rechner z.B. ausschalten kann oder etc....

Da PHP ja unter "wwwrun" (in SuSe als Standard) läuft, habe ich so einige Probleme. Erstmal soll PHP weiter im "Safe Modus" laufen, sprich ich kann ncith einfach überall drauf zu greifen.
Dann gibt es ja die Möglichkeit ein "exec_dir" anzugeben, indem ich Befehle reinpacken kann, die ein PHP prog ausführen darf. Das ist aber auch ncith in meinem Interesse, denn andere Leuite können die Befehl ja dann auch nutzen.

Welche Lösung bietet sich an ? - Ich hatte an eine Art Daemon gedacht, der mit root rechten läuft und das PHP irgendwie in Bezug damit steh... eben IRGENDWIE... wie lässt sich so etwas realisieren ?

Funktioniert Webmin nciht ebenso ?

Ich wäre für jede Idee, Vorschlag und Hilfe dankbar....!
System: SuSe 7.0 - Kernel 2.2.16 - Textkonsole

bbj17

Re: Zugriff aufs System [PHP]

#2 Post by bbj17 »

Hi

Habe ähnliches unter Perl realisiert und dürfte daher nur minimal anders sein.
Also unter Linux ein kleiner Perl-Skript starten, dass auf einem bestimmten Port lauscht.
Wenn nun ein anderer Rechern auf diesen Port connected, startet das Perl-Skript einen Linux-Befehl. (so was willst du doch, oder). Wenn du noch eine Authentisierung einbauen willst, wird´s halt etwas komplexer. Ansonsten sind´s knapp 10 Zeilen Code.

Wegen dem ausführenden User : starte das Skript unter der Linux-Konsole mit dem User, unter welchem es Laufen soll. + & - Zeichen. Dann läuft es im Hintergrund weiter.

Du wolltest, das ganze doch nicht per Web-Seite machen, oder ?

stingway
Posts: 164
Joined: 06. Jul 2001 16:49

Re: Zugriff aufs System [PHP]

#3 Post by stingway »

Also ich habe eine andere Lösung gefunden:

Man lässt ein durch Root gestartetes Programm in einer Schleife alle 2 Sekunden eine Datenbank abfragen.
Wenn neue Ergebnisse drin liegen , soll das Script diese Befehle ausführen.

So ist es dann möglich z.B. über ein PHP programm den rechner zu steuern <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">


Die Lösung von "bbj17" ist glaube ich für meinen fall nciht relevant.
System: SuSe 7.0 - Kernel 2.2.16 - Textkonsole

Jochen

Re: Zugriff aufs System [PHP]

#4 Post by Jochen »

Urgh! 'N busy loop?!? Wir sind doch unter Linux...

Lass Dein PHP-Skript in eine Named Pipe (auch FIFO genannt, zu erstellen mittels mknod oder mkfifo) schreiben, an der ein Leser hockt und die dort aufschlagenden Kommandos ausführt. So wird der Leser vom System schlafen gelegt, bis wieder was zu tun ist und verbrät keine CPU-Zeit für nutzloses Aufstehen, Nachgucken und wieder schlafen legen.

So 'ne Named Pipe funktioniert von den Synchronisierungsmechanismen wie eine namenlose ("|" in der Shell), sie hat halt nur 'nen Namen im Dateisystem und man liest/schreibt (zumindest per Shell) meist per Eingabeumlenkung daraus.

Jochen

stingway
Posts: 164
Joined: 06. Jul 2001 16:49

Re: Zugriff aufs System [PHP]

#5 Post by stingway »

Also, ich kann doch cnith einfach in diese FIFO Pipe schreiben, denn dann müsste ich PHP bzw. Apache den Befehl freigen und somit wäre er für alle User benutzbar. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle"> ... und das ist wohl ein enormes sicherheitsrisiko.
Das einzie lösungsprinzip was mri einfällt, dass auch mit den Rechten hinhaut ist das, das ein ShellScript irgendwo raus (Textdatei/Datnabk) die befehle lesen muss.

Denn das PHP Programm kann ja höchstens eine Datei bzw. Datenbankeintrag anlegen. Wenn ich einen Befhel freigebe, würde er ja alles anderen benutzern des Apache auch verfügbar sein. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
... irgendwie muss es machbar sein...
System: SuSe 7.0 - Kernel 2.2.16 - Textkonsole

hugenay

Re: Zugriff aufs System [PHP]

#6 Post by hugenay »

ist der php zugriff den beschraenkt? - wuerd ja sonst aufs gleiche rauskommen..

ich hab das mal mit nem cgi-skript gemacht, passwort-abfrage per apache und da wwwrun zu wenig rechte hatte, mit su1 gearbeitet. Wuerd ich jetzt wohl nicht mehr machen.

Post Reply