Linux-Verzeichnisstruktur erklärt: /etc, /var, /home und der FHS

Person am Schreibtisch arbeitet an einem Linux-Laptop, daneben ein kleiner Heimserver mit Status-LEDs

Die Linux-Verzeichnisstruktur erklärt sich über den Filesystem Hierarchy Standard (FHS): einen einzigen Verzeichnisbaum ab der Wurzel /, in dem jeder Ordner der obersten Ebene genau eine Aufgabe hat. /etc hält die Konfiguration, /var veränderliche Daten wie Logs, /home die Nutzerdateien und /usr die installierten Programme. Weil der Standard distributionsübergreifend gilt, liegt dieselbe Art von Datei auf Ubuntu, Debian und Fedora am gleichen Platz.

Ein Baum statt Laufwerksbuchstaben

Linux kennt keine Laufwerksbuchstaben wie C: oder D:. Es gibt genau einen Verzeichnisbaum, und seine Spitze ist das Wurzelverzeichnis — geschrieben als einzelner Schrägstrich /, englisch „root“. Alles hängt darunter. Eine zweite Festplatte, ein USB-Stick oder eine Netzwerkfreigabe wird an eine Stelle im Baum eingehängt (gemountet), typischerweise unter /media oder /mnt, und verhält sich danach wie ein ganz normaler Ordner.

Das Regelwerk dahinter ist der FHS. Er beschreibt für jedes Top-Level-Verzeichnis eine klar definierte Rolle, damit Software wie Mensch wissen, wo etwas hingehört. Deshalb findet man sich auf einem fremden Linux-Server sofort zurecht: Konfiguration liegt in /etc, Protokolle in /var/log, Programme unter /usr.

Linux-Verzeichnisstruktur erklärt: die Top-Level-Ordner auf einen Blick

VerzeichnisAufgabeTypisches Beispiel
/etcSystemweite Konfiguration (nur Textdateien, keine Programme)/etc/fstab
/varVeränderliche Daten: Logs, Caches, Warteschlangen/var/log
/homePersönliche Verzeichnisse der Benutzer/home/marcel
/usrInstallierte Programme, Bibliotheken, gemeinsame Daten/usr/bin/firefox
/bootKernel, Initramfs und Bootloader/boot/vmlinuz
/devGerätedateien der Hardware/dev/sda
/tmpTemporäre Dateien, verschwinden spätestens beim Neustart/tmp
/optZusatzsoftware von Drittanbietern außerhalb der Paketverwaltung/opt/google/chrome
/rootHeimatverzeichnis des Systemverwalters (nicht unter /home)/root

Wer die Aufteilung im Zweifel nachschlagen will, braucht dafür keine Suchmaschine: man hier beschreibt den Verzeichnisbaum direkt auf dem System, man file-hierarchy zeigt zusätzlich die systemd-Sicht mit den neueren Pfaden.

/etc — wo die Konfiguration lebt

In /etc (historisch für et cetera) liegen die systemweiten Einstellungen, und zwar ausschließlich als lesbare Textdateien, nie als ausführbare Programme. Wer das SSH-Verhalten ändert, editiert /etc/ssh/sshd_config. Welche Datenträger beim Start eingebunden werden, steht in /etc/fstab. Die Benutzerkonten stehen in der Datei passwd, die zugehörigen Passwort-Hashes getrennt davon in shadow — beide liegen in /etc, die zweite darf nur der Systemverwalter lesen.

Faustregel: Was man an einem Dienst einstellt, ohne etwas neu zu installieren, landet fast immer hier. Zwei Stolperfallen, die in der Praxis regelmäßig Zeit kosten:

  • Die Dateien gehören root. Ein normaler Benutzer bekommt beim Speichern ein Permission denied und braucht sudo.
  • Vor jeder Änderung eine Kopie anlegen — sudo cp /etc/fstab /etc/fstab.bak. Ein Tippfehler in /etc/fstab kann den nächsten Systemstart blockieren, und dann hilft nur noch ein Live-System.

/var — alles, was im Betrieb wächst

Das Verzeichnis /var (von variable) sammelt Daten, die während des Betriebs entstehen, wachsen und schrumpfen. Die wichtigsten Unterordner:

  • /var/log — Protokolldateien. Der erste Ort, an dem man bei einem Problem nachsieht; bei systemd-Systemen liegt das binäre Journal unter /var/log/journal und wird mit journalctl gelesen.
  • /var/cache — Zwischenspeicher, etwa heruntergeladene Paketdateien.
  • /var/spool — Warteschlangen für Druckaufträge und Mails.
  • /var/lib — Zustandsdaten von Diensten und Paketverwaltung, oft auch Datenbanken.
  • /var/www — auf vielen Webservern die Dateien der Website.

Weil hier alles aufläuft, ist /var der Kandidat Nummer eins für eine volle Festplatte. Meldet ein Server „No space left on device“, obwohl niemand etwas installiert hat, steckt meist eine wuchernde Logdatei dahinter. Der Ablauf zur Eingrenzung:

  1. Belegung prüfen: df -h /var zeigt, ob wirklich diese Partition voll ist.
  2. Größte Brocken finden: sudo du -xh --max-depth=1 /var | sort -h listet die Unterordner nach Größe.
  3. Journal messen: journalctl --disk-usage nennt den Platzbedarf der systemd-Logs.
  4. Journal beschneiden: sudo journalctl --vacuum-size=200M kürzt es auf 200 MB. Alte Einträge sind danach weg — wer sie noch für eine Fehlersuche braucht, sichert sie vorher weg.

/home — persönliche Dateien und Dotfiles

Jeder reguläre Benutzer bekommt unter /home ein eigenes Verzeichnis, benannt nach dem Login: /home/marcel. Dokumente, Downloads, Browser-Profile und die persönlichen Einstellungen liegen hier — letztere als versteckte „Dotfiles“ wie .bashrc, die ls erst mit der Option -a anzeigt. In der Shell ist die Tilde ~ die Abkürzung für das eigene Heimatverzeichnis.

Zur Abgrenzung: Der Systemverwalter root wohnt nicht unter /home, sondern separat in /root. Das ist kein Schönheitsfehler, sondern Absicht — liegt /home auf einer eigenen Partition, die beim Start nicht eingebunden wird, kann sich root trotzdem anmelden und das Problem reparieren. Genau deshalb legen viele Anwender /home bewusst auf eine eigene Partition: Das Betriebssystem lässt sich dann neu installieren, ohne die eigenen Daten anzufassen.

/usr — Programme, Bibliotheken und der usr-merge

In /usr (heute gedeutet als Unix System Resources) steckt der Großteil der Software: /usr/bin für Programme, /usr/lib für Bibliotheken, /usr/share für gemeinsam genutzte Daten wie Icons und Handbuchseiten. Selbst kompilierte oder von Hand installierte Software gehört nach /usr/local, damit die Paketverwaltung sie bei Updates nicht überschreibt.

Auf aktuellen Systemen sind /bin, /sbin und /lib keine echten Verzeichnisse mehr, sondern nur noch symbolische Verweise auf ihre Gegenstücke unter /usr. Dieser usr-merge vereinfacht Snapshots und atomare Updates. Nachsehen kann man das in einer Sekunde:

  • ls -l / — hinter bin, sbin und lib steht dann ein Pfeil auf usr/bin und Co.
  • readlink -f /bin/nano — liefert /usr/bin/nano, weil beide Pfade auf dieselbe Datei zeigen.

Was sich bis 2026 geändert hat

Der FHS selbst steht inhaltlich still: Maßgeblich ist weiterhin Version 3.0, ursprünglich am 3. Juni 2015 von der Linux Foundation veröffentlicht. Die Pflege liegt inzwischen beim FHS-Projekt im Umfeld von X.Org und freedesktop.org, wo die Fassung unter specifications.freedesktop.org/fhs mit Publikationsdatum 8. April 2026 liegt — Versionsnummer unverändert 3.0. Wer den Text zitiert, nennt also besser die Version als die Jahreszahl.

Bewegung gibt es dafür bei den Distributionen. Debian hat den usr-merge mit Version 13 („trixie“, stabil seit dem 9. August 2025, aktuell als Punktrelease 13.6) abgeschlossen; die Release-Notes weisen dpkg-Warnungen über nicht löschbare Altverzeichnisse ausdrücklich als harmlose Folge dieses Abschlusses aus. Der nächste Schritt, das Zusammenlegen von /usr/sbin und /usr/bin, ist damit aber noch nicht getan:

  • Fedora hat diesen Schritt mit Version 42 gemacht — /usr/sbin ist dort ein Verweis auf bin, und /usr/sbin fällt aus dem Standard-Suchpfad heraus.
  • Debian hält beide Verzeichnisse getrennt. Weil systemd getrennte /usr/bin und /usr/sbin als bemerkenswert einstuft, meldet der Start System is tainted: unmerged-bin. Laut Release-Notes ist das dort normal und wird ignoriert.
  • Von Hand nachhelfen ist keine gute Idee: Die Debian-Release-Notes formulieren unmissverständlich, dass manuelles Zusammenlegen dieser Verzeichnisse nicht unterstützt wird und künftige Upgrades zerstört.

Praktische Konsequenz für Anleitungen aus dem Netz: Ein Befehl, der als /usr/sbin/dienst dokumentiert ist, kann auf Fedora ebenso über /usr/bin erreichbar sein — und liegt auf Debian oft nur dann im Suchpfad, wenn man ihn mit sudo aufruft. type -a befehl zeigt, welcher Pfad tatsächlich greift.

Die restlichen Verzeichnisse kurz erklärt

  • /boot — Kernel (vmlinuz), Initramfs und Bootloader-Dateien; häufig eine eigene, kleine Partition, die nach vielen Kernel-Updates volllaufen kann.
  • /dev — Gerätedateien. Hier erscheint jede Festplatte als /dev/sda oder /dev/nvme0n1, hier liegt auch der bekannte Papierkorb /dev/null.
  • /proc und /sys — virtuelle Dateisysteme, die nur im Arbeitsspeicher existieren. Sie zeigen laufende Prozesse und Kernel-Werte, etwa /proc/cpuinfo.
  • /run — flüchtige Laufzeitdaten wie PID-Dateien und Sockets; liegt im RAM und hat das frühere /var/run abgelöst.
  • /srv — Daten für Dienste, die der Server anbietet (Web, FTP). Auf Desktops meist leer.
  • /mnt und /media — Einhängepunkte: /media für automatisch erkannte Wechseldatenträger, /mnt für manuelles Mounten.
  • /lost+found — Fundstelle für Dateifragmente nach einer Dateisystemprüfung; existiert je Partition mit ext4-Dateisystem.

Wenn eine Datei nicht dort liegt, wo die Anleitung sagt

Drei Ursachen decken die meisten Fälle ab:

  • Andere Distribution, anderer Name. Der Apache-Dienst heißt auf Debian und Ubuntu apache2 mit Konfiguration in /etc/apache2, auf Fedora und RHEL httpd mit /etc/httpd. Der FHS legt den Ort fest, nicht die Bezeichnung.
  • Paket, Container oder Snap/Flatpak. Software aus solchen Formaten liegt nicht in /usr/bin, sondern in eigenen Verzeichnissen wie /var/lib/flatpak oder /snap. Klassische Pfadangaben greifen dort nicht.
  • Symlink statt Original. Nach dem usr-merge ist /bin/programm derselbe Inhalt wie /usr/bin/programm. readlink -f löst die Kette auf.

Wenn nichts davon passt, hilft die Suche direkt am System: which programm oder type -a programm für ausführbare Dateien, dpkg -L paketname (Debian/Ubuntu) beziehungsweise rpm -ql paketname (Fedora/RHEL) für die vollständige Dateiliste eines installierten Pakets. Das ist zuverlässiger als jede Pfadangabe aus einem Forenbeitrag.

Merksätze für die IHK-Prüfung

Die Zuordnung „welches Verzeichnis wofür?“ ist ein Klassiker in der Fachinformatiker-Prüfung, und der Grund ist rein praktisch: Wer die Linux-Verzeichnisstruktur erklärt bekommen hat und weiß, dass Konfiguration in /etc, Logs in /var/log und Programme unter /usr liegen, arbeitet auf jedem unbekannten System sofort los — ob Ubuntu 26.04 LTS, Debian 13 oder Fedora.

Fürs Lernen reicht ein Merksatz pro Ordner: /etc = Einstellungen, /var = veränderlich, /home = Heimat, /usr = Software, /boot = Start, /dev = Geräte. Dazu die zwei Abgrenzungen, die gern als Fangfrage kommen: /root ist nicht /home/root, und in /etc stehen niemals Programme, sondern nur Konfigurationsdateien.

Quellen: FHS 3.0 bei freedesktop.org · Debian-13-Release-Notes: Hinweise zum usr-merge · Fedora-Change „Unify bin and sbin“

Häufige Fragen

Was ist der Filesystem Hierarchy Standard (FHS)?

Der FHS legt fest, welches Top-Level-Verzeichnis welche Aufgabe hat. Dadurch liegt dieselbe Art von Datei auf Ubuntu, Debian und Fedora am gleichen Ort. Maßgeblich ist weiterhin Version 3.0, gepflegt im Umfeld von freedesktop.org.

Wofür ist das Verzeichnis /etc da?

In /etc liegt die systemweite Konfiguration, ausschließlich als lesbarer Text und nie als Programm. Geändert wird dort mit sudo, und vor jeder Änderung gehört eine Sicherungskopie der Datei angelegt.

Was liegt in /var und warum läuft es voll?

/var sammelt veränderliche Daten: Logs in /var/log, Zwischenspeicher in /var/cache, Warteschlangen in /var/spool, Dienstdaten in /var/lib. Weil Protokolle dauerhaft wachsen, ist /var die häufigste Ursache für eine volle Systempartition.

Warum liegt das Heimatverzeichnis von root nicht unter /home?

root wohnt in /root, reguläre Benutzer unter /home. So kann sich der Systemverwalter auch dann anmelden, wenn /home auf einer eigenen Partition liegt, die beim Start nicht eingebunden wurde.

Was bedeutet der usr-merge?

/bin, /sbin und /lib sind auf aktuellen Systemen nur noch symbolische Verweise auf die Ordner unter /usr. Debian hat das mit Version 13 abgeschlossen, Fedora hat seit Version 42 zusätzlich /usr/sbin mit /usr/bin vereinigt.

Marcel Meyer

# wer schreibt hier

Marcel Meyer schraubt seit über zehn Jahren an Rechnern, Netzwerken und Servern — beruflich wie privat. Hier übersetzt er IT-Grundlagen in verständliche Schritte.

→ Mehr über mich