PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Systembefehle via HTML/PHP



Günni61
28-12-2005, 17:21
Hallo zusammen,

ich habe mal folg., kleine PHP-Seite erstellt:

<html>
<head>
<title>Untitled</title>
</head>
<body>
<h3>DNS-Server</h3>
<form action="test.php" method="post">
<input type="submit" name="cmd" value="Start">
<input type="submit" name="cmd" value="Stop">
<input type="submit" name="cmd" value="Restart">
</form>
<?
if($cmd){
switch($cmd){
case "Start": passthru("/etc/init.d/bind9 start");break;
case "Stop": passthru("/etc/init.d/bind9 stop");break;
case "Restart": passthru("/etc/init.d/bind9 restart");break;
}
}
?>
</body>
</html>

Dass das nicht funktioniert, war mir schon klar.

Was muß ich einstellen, damit es funktioniert?

Danke und Gruß
Günni

BLUESCREEN3D
28-12-2005, 18:21
if($cmd){
switch($cmd){
ersetzen durch:

if (isset($_POST['cmd'])){
switch($_POST['cmd']){
Die if-Abfrage macht da eigentlich auch nur Sinn, wenn du dann in "switch" noch ein "default" hast und eine Meldung "unbekannter Befehl" oder so ausgibst.

PS: Zum Threadtitel: HTML ist clientseitig - darüber führst du keine Befehle auf dem Server aus ;)

co_negol
29-12-2005, 08:20
Hola Günni,

ich denke mal der user (wwwrun oder so-also der unter dem apache läuft) sollte das recht erhalten "/etc/init.d/bind9 start|stop|restart" auszuführen.

grüße alex

Turbohummel
29-12-2005, 08:53
Auch möglich dass das auf dem Server nicht erlaubt ist.

quinte17
29-12-2005, 09:18
http://www.mrunix.de/forums/showthread.php?t=40704&highlight=expect

mit expect und sudo kannst du alles machen was du willst...

greetz

co_negol
29-12-2005, 09:57
http://www.mrunix.de/forums/showthread.php?t=40704&highlight=expect

mit expect und sudo kannst du alles machen was du willst...

greetz

... wenn dein admin dir die rechte für sudo und/oder expect gibt :D

Günni61
29-12-2005, 18:32
@all

Danke für die Antworten.

Also das PHP-Script funktioniert, die Meldungen des DNS-Servers werden
auf der Seite ausgegeben, nur dass auf dem Server nix passiert. Heißt
also, der Klick auf Stop z.B. bleibt auf dem Server ohne Wirkung.

Ich werde mich also in die Sache mit der Rechtevergabe bzw. sudo reinknieen
müssen.

Grüße und guten Rutsch ins Jahr 2006

Günni

co_negol
30-12-2005, 07:53
Hola Günni,

nimm mal statt passthru exec("/etc/init.d/bind9 start",$results)
gibt print_r($results) etwas aus? wenn ja, ists ein fehlercode den Du google kannst
und tu mir mal den gefallen und führe bind9 als wwwrun aus (su wwwrun,(passwort), dann /etc ...), geht das?

grüße alex

Günni61
30-12-2005, 21:08
@co_negol

Hi,

habe exec("/etc/init.d/bind9 start",$results) ausgeführt, print $results
gibt das gleiche aus wie passthru("/etc/init.d/bind9 start").

Den Rest teste ich nach Neujahr, hab leider keine Zeit mehr.

Wünsche dir und deinen Liebsten guten Rutsch ins Jahr 2006
Grüße
Günni

inge
12-01-2006, 21:03
versuch doch mal

shell_exec(<befehl>);