Gameserver-Commands via Script auf dem Rootserver ausführen

rulaman

Registered User
Hallo,

ich würde mir gerne für einen Gameserver auf dem eigenen Rootserver, für welchen es keine Rcon-Möglichkeit außerhalb des Spieles gibt, eine Art Management Console ähnlich wie in UT3 WebAdmin basteln. Die Console soll nichts anderes machen, als eingegebene Befehle an den dem Gameserver zugehörigen Screen schicken.
Ist man via ssh auf dem Server eingeloggt, lässt sich dem Gameserver mittels " screen -S ScreenXYZ -X stuff "Command"$'\12' " der Befehl "Command" erteilen. Also bräuchte ich ein Script, welches den "ScreenXYZ -X stuff ......... $'\12'"-Part übernimmt, und den eingegebenen "Befehl" "weiterleitet".
Meine PHP-Kenntnisse sind erbärmlich, und ich möchte mir auch keine unnötigen Sicherheitslöcher auf meinen Rootserver einrichten. Daher die Frage an die Profis: Ist das überhaupt realisierbar, bzw. gibt es eventuell schon ein ähnliches Script, welches ich mir hierfür anpassen könnte?

Danke.
rulaman
 
Möglich auf jeden Fall.

Wie ich das angehen würde:
Ein bash Skript nimmt Befehl und Parameter entgegen und sendet dann die Daten an den Screen.
Ein php Skript wertet die Usereingabe aus, ist der Befehl in einer Whitelist vorhanden wird er z.B. mittels
Code:
$tmp=`sudo /deinskript $CMD $PARA`
ausgeführt. Natürlich sudo und Eintrag in die sudoers vorausgesetzt.
Je nach php-Konfiguration (safe-mode) das Skript explizit erlauben.
 
Danke schnoog! Dein grober Lösungsansatz leuchtet mir als sehr brauchbar ein, und das mit der Whitelist ist auch ein unverzichtbarer Sicherheitsfaktor.
Na dann werde ich mal mein verstaubtes PHP5/MySQL5 zur Hand nehmen, und sehen ob ich das zu Stande bringe. Bisher beschränkten sich meine PHP Tätigkeiten auf minimale Anpassungen vorhandener Scripte... :o
Der bash Teil sollte kein Problem sein.

THX :)
 
Update: Habe schnoog's Vorschlag umgesetzt, funktioniert perfekt. :cool:
Alle möglichen/nötigen commands für den Gameserver sind in Auswahlmenüs anwählbar, somit ist auch keine whitelist nötig. ;)

Danke nochmal für den Tipp! :)

rulaman
 
somit ist auch keine whitelist nötig.
Dir ist aber schon klar das man nicht gerade dein Formular verwenden muss oder? Man kann sich auch selber ein Formular zusammen bauen und die Daten an deinen Server schicken. Eine andere Möglichkeit wäre das Formular mit beispielsweise Firebug in Firefox abzuändern. Dadurch könnte man jeden beliebigen Befehl senden. Eine Whitelist ist also auf jeden Fall wichtig.
 
Ist ein Argument, ok, danke für den Hinweis. Ich werde sowas ähnliches in das bash Script einbauen.
Richtig nötig ist es vermutlich nicht, da nur ich diesen Weg der Serveradministration (auschließlich vom Heim PC aus) nutzen werde, und kein anderer weiß wo die php und bash Scripte liegen und wie sie heißen.
Werde aber trotzdem bei Gelegenheit noch ein paar Bedingungen einbauen. :o

THX;)
 
Back
Top