1 📂 /srv (Der dedizierte Maschinenraum für Server-Nutzdaten)
In den Anfangstagen von Linux gab es keinen einheitlichen Ort für Serverdaten. Ein Webserver legte seine HTML-Dateien unter /usr/local/httpd ab, ein FTP-Server nutzte /home/ftp und andere Dienste schrieben ihre Daten wild in das /var-Verzeichnis. Das führte bei System-Backups und Festplatten-Partitionierungen regelmäßig zum Chaos.
Der FHS (Filesystem Hierarchy Standard) hat diesem Wildwuchs mit der Einführung von /srv ein Ende gesetzt.
Das Verzeichnis verfolgt eine strikte architektonische Trennung:
- /usr enthält die installierten Programme und Binärdateien (statisch und schreibgeschützt).
- /var enthält dynamische Systemdaten (Logs, Spools, Caches), die das System selbst generiert.
- /srv enthält ausschließlich die Nutzdaten, die der Server nach außen an Clients ausliefert.
Die Kernphilosophie von /srv lautet:
„Biete dem Administrator einen einzigen, unantastbaren Ort für alle externen Dienste. Ermögliche es, diesen Ordner auf eine eigene, schnelle Festplatte oder ein separates RAID-Array auszulagern, ohne die Kern-Struktur des Betriebssystems zu verändern.“
2 🏗️ DIE STRUKTUR INNERHALB VON /srv (Beispiele für die Praxis)
Der Standard sieht vor, dass die Unterordner in /srv nach dem jeweiligen Dienst und dem Protokoll benannt werden. Auf einem professionell aufgesetzten Server sieht die Struktur typischerweise so aus:
| Verzeichnis | Zweck / Dienst | Beispiel-Inhalt |
|---|---|---|
| /srv/www/ | Webserver (HTTP/HTTPS) | HTML-Dateien, PHP-Skripte, WordPress-Instanzen |
| /srv/ftp/ | FTP-Server | Öffentlich oder intern freigegebene Download-Dateien |
| /srv/git/ | Versionsverwaltung (Git) | Zentrale, im Netzwerk freigegebene Quellcode-Repositories |
| /srv/nfs/ | Netzwerk-Dateisystem (NFS) | Freigegebene Speicherbereiche für Linux-Clients |
| /srv/tftp/ | PXE-Boot-Server | Boot-Images für die automatische Netzwerkinstallation |
3 📦 EINRICHTUNG UND RECHTEVERGABE (Für alle Distributionen identisch)
Da /srv ein nativer Teil des Linux-Wurzelverzeichnisses ist, existiert es unter Debian, Arch Linux, Fedora und openSUSE standardmäßig ab Werk und muss nicht installiert werden. Die administrative Arbeit besteht darin, Verzeichnisse anzulegen und die Linux-Dateirechte sauber zu konfigurieren.
Hier ist das Standard-Vorgehen, um einen neuen Webserver-Bereich einzurichten:
# 1. Unterordner für den Webdienst als Root/Sudo anlegen
sudo mkdir -p /srv/www/mein-forum
# 2. Die Rechte anpassen: Der Webserver-Benutzer (unter Debian/Arch oft www-data oder http)
# muss die Dateien lesen und ggf. beschreiben dürfen.
sudo chown -R www-data:www-data /srv/www/mein-forum
# 3. Berechtigungen restriktiv setzen (Ordner: 755, Dateien: 644)
sudo find /srv/www/mein-forum -type d -exec chmod 755 {} \;
sudo find /srv/www/mein-forum -type f -exec chmod 644 {} \;
4 🛠️ Praktische Nutzung
Weil /srv ideal für Backups und Speicherplatz-Management ist, nutzt der Administrator diese Standard-Befehle:
# 1. Den exakten Speicherverbrauch aller Server-Dienste ermitteln (menschenlesbar)
sudo du -sh /srv/*
# 2. Ein schnelles, komprimiertes Backup des gesamten Server-Maschinenraums erstellen
sudo tar -cvzf /backup/server_nutzdaten_$(date +%F).tar.gz /srv/
# 3. Überprüfen, ob /srv auf einer eigenen Partition oder Festplatte liegt
df -h /srv
5 ⚠️ DIE TYPISCHEN /SRV-STOLPERSTEINE
5.1 Der „Apache / Nginx wirft einen 403 Forbidden Fehler“ - Konflikt
- Das Problem:
Ein Nutzer hat seine Webseite von /var/www/html nach /srv/www/ umgezogen. Er ruft die Domain auf und erhält im Browser nur den Fehler „403 Forbidden“, obwohl die Dateirechte (chown/chmod) absolut korrekt gesetzt sind. - Die Ursache:
Viele Webserver bringen in ihrer Standard-Konfigurationsdatei (httpd.conf oder apache2.conf) restriktive Sicherheitsregeln mit. Dort ist das Wurzelverzeichnis / standardmäßig komplett gesperrt. Nur das alte Verzeichnis /var/www wird explizit freigeschaltet. Der Webserver blockiert den Zugriff auf /srv also selbst, um das System zu schützen. Die Lösung: Dem Webserver das neue Verzeichnis erlauben. In der Konfigurationsdatei des Webservers muss folgender Block ergänzt werden:
Code<Directory /srv/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>Danach den Dienst neu starten (sudo systemctl restart apache2), und der Fehler ist behoben.
5.2 Das „SELinux sperrt den Zugriff“ - Phänomen (Speziell Fedora / RHEL)
- Das Problem:
Auf einem frisch aufgesetzten Fedora-Server weigern sich Dienste hartnäckig, Daten aus /srv zu lesen, obwohl die Linux-Rechte stimmen und der Webserver konfiguriert ist. - Die Ursache:
Das Sicherheits-Subsystem SELinux überwacht Dateikontexte. Kopiert man Dateien aus dem Home-Verzeichnis nach /srv, behalten sie ihren alten Sicherheits-Kontext (user_home_t), den der Webserver-Prozess nicht anfassen darf. Tipp: Den korrekten SELinux-Kontext für Serverdienste in /srv wiederherstellen:
6 📝 FAZIT
Das Verzeichnis /srv ist das Paradebeispiel für ein aufgeräumtes, professionelles Linux-System. Es trennt System von Daten und erleichtert die Serveradministration massiv.