PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : teamspeak2-server_startscript ausführen?



ChiLLiN
14.07.2009, 16:55
Mein server verabschiedet sich mal ab und zu...

Dar ich TS2 server hoste bräuchte ich kein kleines script womit die leute von denen ich die TS2 server hoste es selbst starten können falls ich mal nicht da bin.

es müsste erst die tsserver2.pid löschen und dann
./teamspeak2-server_startscript start
Ausführen

könnte mir jemand pls helfen

VeN0m
14.07.2009, 16:59
Naja...
Erst per unlink() (http://de.php.net/manual/de/function.unlink.php) die tsserver2.pid löschen,
dann per exec() (http://de.php.net/manual/de/book.exec.php) den TS-Starter ausführen.

Etwa so:



<?php

if(md5($_GET['startmyts.pw']) == "21232f297a57a5a743894a0e4a801fc3") {

if(unlink("tsserver2.pid") AND exec("./teamspeak2-server_startscript start")) {

print "TS-Server erfolgreich gestartet!";

} else {

print "Es ist ein Fehler aufgetreten!";

}

} else {

die("Access denied");

}

?>


Denke ich mir mal... ;)
Passwortschutz muss aber drinnen sein, sonst macht es nicht viel Sinn ;). Momentan ist das Passwort "admin"... ;)
Also der Aufruf wäre dann eben datei.php?startmyts.pw=admin. Finde zwar diese Methoden nicht so toll aber wird seinen Zweck tun, wenn nicht alle wisen, wo die Datei liegt.

ChiLLiN
14.07.2009, 17:03
der pfad zum startscript ist
root/ts2/

muss ich da jezz was verändern?

sry ich hab davon echt keine ahnung XD

VeN0m
14.07.2009, 17:07
Naja Du musst halt zum Pfad hin navigieren. Bei dem Script hatte ich Deine Angabe genutzt. Sofern die Sicherheitseinstellungen den Zugriff von PHP-Scripten auf Dateien außerhalb von "htdocs" (oder www etc.) erlaubt kannst Du einfach mit ../../../ zurücknavigieren (so viele, wie halt nötig sind) und dann root/ts2/ dranhängen.

ChiLLiN
14.07.2009, 17:10
das heist also



<?php

if(md5($_GET['startmyts.pw']) == "21232f297a57a5a743894a0e4a801fc3") {

if(unlink("../../root/ts2/tsserver2.pid") AND exec("../../root/ts2/./teamspeak2-server_startscript start")) {

print "TS-Server erfolgreich gestartet!";

} else {

print "Es ist ein Fehler aufgetreten!";

}

} else {

die("Access denied");

}

?>

VeN0m
14.07.2009, 17:13
Joa, sofern PHP eben diesen Zugriff erlaubt. Falls es so nicht geht, versuchs mit mehr "../". Sollte aber wohl gehen, ja.

ChiLLiN
14.07.2009, 17:15
http://81.89.99.16/test/test.php?startmyts.pw=admin
Access denied

:S hab vorher den ts down gemacht

VeN0m
14.07.2009, 17:18
Dann ohne das Passwort... Könntest Du aber auch selber entfernen ;).



<?php

if(unlink("../../root/ts2/tsserver2.pid") AND exec("../../root/ts2/./teamspeak2-server_startscript start")) {

print "TS-Server erfolgreich gestartet!";

} else {

print "Es ist ein Fehler aufgetreten!";

}

?>


Kann Dir so gerade nicht sagen, wieso access denied gegeben wird. Habe ich wohl einen kleinen Denkfehler drin oder so.

ChiLLiN
14.07.2009, 17:19
Warning: unlink(../../../../root/ts2/tsserver2.pid) [function.unlink (http://81.89.99.16/test/function.unlink)]: Permission denied in /var/www/test/test.php on line 3
Es ist ein Fehler aufgetreten!

-.- kein zugriff

VeN0m
14.07.2009, 17:24
Jop. Ich schreibe auch hier nochmal, woran das wohl liegt. Damit, falls später nochmal jemand das Problem hat er nachsehen kann ;).
Dein Pfad war korrekt, aber die test.php kann nicht darauf zugreifen wegen den Rechten (oder Securityeinstellungen).
Bei Linux(-Servern) kann man z.B. per SSH und Putty die Rechte ändern:

chown www-data test.php
chgrp www-data test.php

Oder eben im FTP-Programm einstellen, dass die Datei www-data gehört und auch der Gruppe angehört. Wenn sie "root" gehört (dem User) schlägt sowas oft fehl.