Die Verwaltung eines externen Webservers gestaltet sich per Secure Shell einfach, dank X-Forwarding kann man bei entsprechender Netzanbindung sogar grafische Programme zur Verwaltung am heimischen Rechner bedienen. Oft steht aber zur Administration nur ein Rechner zur Verfügung, auf dem man keine zusätzliche Software installieren kann oder darf. Häufig agiert auch die Firewall so restriktiv, dass außer HTTP(S) nichts hindurchkommt. PHP Shell und Shell in a Box ermöglichen in diesem Fall trotzdem den Shell-Zugriff auf den Server.
PHP Shell ermöglicht den Shell-Zugang zu Servern, wo die Firewall den Zugang blockiert oder Sie keine Software im Dateisystem installieren können. Ein PHP-fähiger Webserver genügt, um Shell-Befehle auszuführen. Dazu darf der Safe-Mode von PHP nicht aktiviert sein, der dazu dient, PHP durch Einschränkungen gewisser Befehle sicher zu machen.
Die Installation von PHP Shell funktioniert recht einfach: Sie laden die aktuelle Version von der PHP-Shell-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. Dort 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 können Sie auch mehrere Benutzer anlegen. Neben Benutzernamen und Passwort lassen sich in
»config.php
«
noch Shell-Aliases sowie ein Home-Verzeichnis für PHP Shell festlegen.
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 Shell-Sitzung im Webbrowser kann beginnen. Sie geben nun Kommandos im PHP-Shell-Fenster ein (Abbildung 1). Nach dem Betätigen von
[Eingabe]
oder einem Klick auf
»Execute Command
«
werden diese ausgeführt, das Ergebnis erscheint wiederum im Shell-Fenster.
Die Kommandozeile, die PHP Shell im Browser zur Verfügung stellt, unterliegt dabei einigen Einschränkungen:
Timeout
«
-Direktive, in PHP mittels der Einstellung
»max_execution_time
«
in
»php.ini
«
.PHP-Shell führt die Kommandos unter der User- und Group-ID des Webservers aus, wie sich unschwer mit dem
»id
«
-Kommando überprüfen lässt. Das kann zuweilen recht nützlich sein – etwa, wenn man ein Verzeichnis anlegen möchte, in das nur der Webserver schreiben darf. Das klappt via FTP meist nicht, da man in diesem Fall unter einer anderen User-ID operiert und daher oft lediglich global beschreibbare Verzeichnisse anlegen kann. Mit PHP Shell klappt das dagegen problemlos.