PHP Shell und Shell in a Box erlauben es, Rechner ohne SSH-Zugang aus der Ferne zu verwalten – mit einer Shell im Webbrowser.
Das Verwalten eines externen Webservers gestaltet sich per Secure Shell einfach, dank X-Forwarding rufen Sie bei entsprechender Bandbreite sogar grafische Programme auf, deren Ausgabe am heimischen Rechner erscheint.
Gelegentlich steht aber zur Administration nur ein Rechnern bereit, auf dem die essentiellen Tools fehlen, Sie aber keine zusätzliche System-Software installieren dürfen. Dazu agiert meist die Firewall so restriktiv, dass außer HTTP(S) nichts hindurch kommt. Die Programme PHP Shell und Shell in a Box ermöglichen in diesem Fall trotzdem den Shell-Zugriff auf den Server.
PHP Shell
PHP Shell ermöglicht den Shell-Zugang zu Servern, wo die Firewall den Zugang blockiert oder Sie keine Software im Dateisystem installieren dürfen. Ein PHP-fähiger Webserver genügt, um Shell-Befehle auszuführen. Das setzt aber voraus, dass der Safe-Mode von PHP nicht aktiv ist.
Die Installation von PHP Shell funktioniert recht einfach: Sie laden die aktuelle Version von der Homepage [1] herunter und entpacken das ZIP-Archiv in ein Verzeichnis auf dem Webspace. Dann setzen Sie ein Passwort, wozu Sie die URL http://Server/phpshell/pwhash.php aufrufen.
In die Eingabefelder geben Sie die gewünschte Kombination von Benutzernamen und Passwort ein. Sie erhalten als Ausgabe eine Zeile, die Sie im Abschnitt [users] der Konfigurationsdatei config.php eintragen. Bei Bedarf legen Sie mehrere Benutzer an. Neben Benutzernamen und Passwort tragen Sie bei Bedarf in config.php noch Shell-Aliases sowie ein Home-Verzeichnis für PHP Shell ein.
TIPP
Das verschlüsselte Abspeichern des Passworts mithilfe von pwhash.php verhindert zwar unberechtigte Logins, falls einem Angreifer die Datei mit der Konfiguration in die Hände fällt. Sie sollten PHP Shell aber grundsätzlich über eine per SSL verschlüsselte Verbindung (HTTPS) aufrufen – andernfalls wäre ein Angreifer in der Lage, die eingegebenen Kommandos und Ausgaben im Klartext mitzulesen.
Nun steht PHP Shell zum Einsatz bereit. Sie rufen es über die URL https://Server/phpshell/phpshell.php auf, melden sich mit Benutzernamen und Passwort an – und die Sitzung im Webbrowser beginnt. Nun haben Sie die Möglichkeit, Kommandos in das Fenster einzugeben (Abbildung 1). Nach dem Betätigen von [Eingabe] oder einem Klick auf Execute Command führt die Software diese aus, und das Ergebnis erscheint wiederum im Shell-Fenster.

Abbildung 1: PHP Shell läuft auf einem beliebigen Webspace, allerdings sollten Sie HTTPS für die Kommunikation verwenden, weil die Kommandos – inklusive Passwörtern – sonst im Klartext über die Leitung geht.
Die Kommandozeile, die PHP Shell im Browser bereit stellt, unterliegt dabei einigen Einschränkungen:
- Jeder Befehl darf vom Benutzer keine weitere Eingabe abfragen, was interaktive Programme vom Einsatz ausschließt.
- Jedes Kommando muss in eine Zeile passen. PHP Shell erkennt nicht, dass Sie ein Kommando fortsetzen möchten. So gelingt beispielsweise die Eingabe einer For-Schleife in mehreren Zeilen (wie in der normalen Shell) nicht.
- Die Befehle müssen innerhalb einer bestimmten Zeitspanne abgearbeitet sein, üblicherweise binnen 30 Sekunden. Hier handelt es sich jedoch nicht um eine durch PHP Shell bedingte Einschränkung: Sowohl der Webserver (meist Apache) als auch PHP brechen nach einer gewissen Zeit das Verarbeiten ab. Sie konfigurieren die entsprechenden Limits in Apache über die Direktive
Timeout-, in PHP mittels der Optionmax_execution_timeinphp.ini.
Das Programm führt die Kommandos unter der User- und Group-ID des Webservers aus, wie Sie mit dem Kommando id leicht überprüfen. Das ist zuweilen recht nützlich – etwa, wenn Sie ein Verzeichnis anlegen möchte, in das nur der Webserver schreiben darf.
Das klappt via FTP meist nicht, da Sie in diesem Fall unter einer anderen User-ID operieren und daher oft lediglich global beschreibbare Verzeichnisse anlegen dürfen. Mit PHP Shell klappt das dagegen problemlos.
PHP Shell bietet eine einfache History-Funktion, über die Sie mit den Cursor-Tasten in den zuletzt ausgeführten Kommandos vor- und zurückblättern. Umfangreichere History-Funktionen wie eine Suche unterstützt die Software jedoch nicht.
Die Größe des Fensters für die Kommandos ändern Sie gegebenenfalls via Size: rechts unterhalb des Bereichs für die Eingabe. Dort tragen Sie einfach die gewünschten Werte ein und führen dann den nächsten Befehl aus. PHP Shell beinhaltet zusätzlich einen einfachen Editor (editor Datei), mit dessen Hilfe Sie bei Bedarf Dateien ändern, auf die der Webserver schreiben zugreifen darf.
Shell in a Box
Das Programm Shell in a Box (Abbildung 2) eignet sich dann, wenn Sie zwar Shell-Zugang zum Server haben und dort eigene Programme einrichten dürfen, aber als Client einen Webbrowser verwenden wollen oder müssen.






