2 min read

webfs unter Debian 11/12

webfs unter Debian 11/12
Photo by Nicolas Picard / Unsplash

webfs ist ein kleiner, leichtgewichtiger Webserver, der gut geeignet ist, wenn ein schlanker Webserver benötigt wird, z.B. um lediglich Updates zu verteilen. Ist der Server allerdings leicht veraltet (Debian < 13) kommt es zu einem kleinen Problem. Für den Service wird eine PID-Datei als User www-data erzeugt, wenn webfs aus der Debian-Distribution verwendet wird. Es gilt schon unter Debian 11 als Sicherheitsrisiko, wenn die PID-Datei nicht geschützt ist. Die Folge ist, dass der Service nicht mehr wie gewohnt per

sudo systemctl stop webfs

oder

sudo /etc/init.d/webfs stop

angehalten werden kann. Der Prozess kann dann nur noch manuell per kill gestoppt werden. Das kann zunächst leicht übersehen werden, wenn nicht genau auf die Anzeigemeldungen beim Herunterfahren geachtet wird und es ist natürlich auch unschön. Das gleiche gilt auch für Debian 12. Erst mit Debian 13 (Trixie) ist das Problem in der Distribution behoben.

Nehmen wir an, wir arbeiten auf einer Debian-11-Maschine und können vorerst nicht auf Debian 13 aktualisieren. Genau diese Situation habe ich beim Schreiben dieses Artikel mit einer virtuellen Maschine simuliert. Es war zudem die Situation in der ich mich befunden hatte. Unter diesen Umständen können wir relativ leicht ein Backport des Pakets erzeugen:

Zunächst benötigen wir die Quellen, die wir unter https://packages.debian.org/trixie/webfs finden und herunterladen. Wir benötigen die drei Dateien

  • webfs_1.21+ds1-16.dsc
  • webfs_1.21+ds1.orig.tar.gz
  • webfs_1.21+ds1-16.debian.tar.xz

Die Dateien müssen entpackt werden. Dazu benötigen wir die Pakete dpkg-dev und devscripts, die wir per

sudo apt install dpkg-dev devscripts

installieren. Damit können die Sourcen entpackt werden:

dpkg-source -x paketname_version.dsc

Es wird ein Ordner webfs-1.21+ds1 erstellt. Dann benötigen wir noch die build-Abhängigkeiten des webfs-Pakets, die wir uns mit

sudo apt build-dep webfs

holen. Zudem wir das Paket pkgconf benötigt:

sudo apt install pkgconf

Jetzt kann unser Paket gebaut werden indem wir in den Ordner webfs-1.21+ds1 gehen und

dpkg-buildpackage -us -uc -b

ausführen. Das Package wird oberhalb des aktuellen Verzeichnisses als webfs_1.21+ds1-16_amd64.deb erstellt und wir können es jetzt per

sudo dpkg -i ../webfs_1.21+ds1-16_amd64.deb

installieren. Abschließend prüfen wir, ob die Installation erfolgreich war. webfs sollte installiert sein und die Standard-Konfiguration sollte einen http-Server auf Port 8000 eingerichtet haben. Das können wir per ps anhand der Ausgabe verifizieren:

ps -ef | grep webfs
www-data   17971       1  0 10:19 ?        00:00:00 /usr/bin/webfsd -F -r /var/www/html -u www-data -g www-data
devuser    18147    2494  0 10:58 pts/0    00:00:00 grep webfs

Et Voilà, wir haben einen funktionierenden webfs-Server auf Debian 11 laufen, der per

sudo systemctl stop webfs
sudo systemctl start webfs

angehalten und wieder gestartet werden kann, durch einen einfachen Backport des webfs aus Debian 13 erzeugt. Unser Glück war hier allerdings, dass es keine schwierigen Abhängigkeiten gab, die aufgelöst hätten werden müssen. Dieser Backport hat die schöne Eigenschaft, dass er bei einem Systemupdate nicht berücksichtigt werden muss. Er wird einfach mit der richtigen Version aktualisiert, die ja hier schon erstellt worden ist.

Referenzen

  1. https://github.com/winny-/webfs