out of the box
Es gibt tausende Tools und Utilities für Linux. "out of the box" pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.
Der vollkommen unaussprechliche Name des in dieser "out of the box" vorzustellenden Tools lautet ausgeschrieben "tiny HTTP daemon" – ein sehr kleiner Web-Server also. Tatsächlich ist das eigentliche Server-Programm gerade mal 60--70 kByte klein. Zur Installation stehen mehrere Methoden zur Verfügung.
Vorgegart oder selbstgekocht?
Für die Distributionen Debian, SuSE und Red Hat und Mandrake existieren vorgefertigte Binärpakete, wobei der rote Hut und sein Abkömmling das tHTTPd-Paket nicht fest integriert haben – es muss über rpmfind beschafft werden (ftp://speakeasy.rpmfind.net/linux/rhcontrib/7.1/i386/thttpd-2.21b-fr0.4.i386.rpm). Als distributionsübergreifende Methode bleibt wie immer das Kompilieren der Quelltexte von http://www.acme.com/software/thttpd/thttpd-2.23beta1.tar.gz, was auch den Vorteil hat, die aktuellste Version zu installieren.
Entscheiden Sie sich dafür, das Binärpaket einzuspielen, greifen Sie zum distributionsspezifischen Paketmanager – rpm bei SuSE, Red Hat und Mandrake, dpkg oder apt-get bei Debian. Die Installation ausgehend vom Quellarchiv erfordert ein paar Schritte mehr:
tar xzf thttpd-2.23beta1.tar.gz cd thttpd-2.23beta1 ./configure make su (root-Passwort eingeben) make WEBGROUP=www install exit
Anschließend befindet sich die ausführbare Datei thttpd im Verzeichnis /usr/local/bin, kam das RPM-Paket zum Zuge, unter /usr/sbin. Zusätzliche Dateien liegen in /usr/local/www (Quellarchiv), /usr/local/httpd/htdocs (SuSE) oder /var/www (Red Hat).
Tütensuppe mit User- und Root-Geschmack
Im einfachsten Fall starten Sie den Web-Server in dem Verzeichnis, dessen Dateien er freigeben soll – Instant-Webserving nennt sich so etwas. Sie können dies als unprivilegierter User tun, müssen dem Programm in diesem Fall aber mitteilen, dass es auf einem anderen Port als dem Standard-HTTP-Port 80 lauschen soll. Im Beispiel lassen wir tHTTPd auf dem unprivilegierten Port 4242 horchen:
thttpd -p 4242
Soll nicht das Arbeitsverzeichnis zum Startzeitpunkt des Web-Servers, sondern ein anderes Verzeichnis freigegeben werden, bestehen Sie darauf mit der Option -d verzeichnisname. Dateien und Verzeichnisse aus darüberliegenden Ordnern bekommen die Benutzer des Servers nicht angezeigt.
Starten Sie den Server als root, so hat er die Berechtigung, auf Port 80 zu lauschen. Nach dem Start gibt tHTTPd die root-Rechte auf und läuft unter der Verantwortung des unprivilegierten Users nobody weiter. Vorher kann zudem ein weiterer Sicherheitsmechanismus zum Zuge kommen. Durch die Option -r setzt der Server mittels chroot den freizugebenden Ordner als sein Wurzelverzeichnis, das er nicht mehr verlassen kann.
Die Abbildungen 1 und 2 zeigen beispielhaft von tHTTPd freigegebene Verzeichnisse in den Web-Browsern w3m und Konqueror. Die zugänglichen Dateien liegen in /home/chris/public, aus dem der Server gestartet wurde. Da er nicht auf dem Standard-Port 80 lauscht, müssen die User den Port mit in der URL angeben, etwa http://localhost:4242 für den Zugriff auf einen lokal laufenden Web-Server.



