Verzeichnisstruktur

Achtung!

Für jegliche Veränderungen an Dateien oder Ordnern außerhalb des Homeverzeichnis sind Root-Rechte erforderlich. Änderungen sollte man nur vornehmen, wenn man genau weiß, welche Auswirkungen das haben kann.

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Inhaltsverzeichnis
  1. / (Root)
    1. /bin
    2. /boot
    3. /dev
    4. /etc
    5. /home
    6. /lib
    7. /lost+found
    8. /media
    9. /mnt
    10. /opt
    11. /proc
    12. /root
    13. /run
    14. /sbin
    15. /srv
    16. /sys
    17. /tmp
    18. /usr
    19. /var
  2. Aufteilen der Verzeichnisse auf verschiede...
  3. Links

verzeichnis.png Dieser Artikel beschreibt die Verzeichnisstruktur eines Linux-Systems. In verschiedenen Systemverzeichnissen liegen alle elementaren Programme und Konfigurationsdateien. In der Regel können in diesen Verzeichnissen (Ordnern) nur mit Root-Rechten Veränderungen vorgenommen werden. Obwohl dies gerade Ein- und Umsteigern gerne Probleme bereitet, ist dieser Zwang ein essentieller Baustein der Systemsicherheit.

Lange Zeit brachte jede Linux-Distribution ihre eigenen Vorstellungen vom Aufbau des Dateisystems mit. Um eine Vereinheitlichung und den Datenaustausch zwischen den Distributionen zu erleichtern, hat man ein Gremium aus den wichtigsten Distributoren gebildet. Dieses Gremium erarbeitete den "Filesystem Hierarchy Standard" (FHS). Auch die Verzeichnisstruktur von Ubuntu richtet sich nach diesem Standard.

Die hier gezeigte Verzeichnisstruktur berücksichtigt eine Installation mit gesonderter Bootpartition nicht. Die Auflistung erfolgt in alphabetischer Reihenfolge. Noch mehr Informationen - auch über viele Unterverzeichnisse - kann man der Manpage von hier entnehmen. Das Wort "hier" steht in diesem Fall für "Description of the file system hierarchy", zu deutsch: "Beschreibung der Hierarchie des Dateisystems".

man hier 

/ (Root)

Erste Verzeichnisebene; entspricht in der Regel der Bootpartition (Ausnahme: Eigene Bootpartition); enthält neben den im Folgenden genannten Unterverzeichnissen auch symbolischen Verknüpfungen für initrd.img und vmlinuz (siehe /boot)

/bin

Von: binaries (Programme); muss bei Systemstart vorhanden sein; enthält für Linux unverzichtbare Programme; diese Programme können im Gegensatz zu /sbin von allen Benutzern ausgeführt werden; /bin darf keine Unterverzeichnisse enthalten.

/boot

Muss bei Systemstart vorhanden sein; Enthält zum Booten benötigte Dateien. Beispiele: Kernel "vmlinuz-versionsnummer-generic" (für Desktopsysteme), "vmlinuz-versionsnummer-server" (für Serversysteme), "vmlinuz-versionsnummer-virtual" (für virtuelle Maschinen), initiale Ramdisk "initrd.img-versionsnummer-generic"/"-server"/"-virtual" und das Programm für den Memorytest memtest86.bin

Unterverzeichnis(se):

/dev

Von: devices (Geräte); muss bei Systemstart vorhanden sein; enthält alle Gerätedateien, über die die Hardware im Betrieb angesprochen wird; Gerätedateien für Hot-Plug-Systeme (z.B. USB, IEEE1394) werden von udev erstellt

/etc

Von: et cetera ("alles übrige"), später auch: editable text configuration (änderbare Text Konfiguration); muss bei Systemstart vorhanden sein; enthält Konfigurations- und Informationsdateien des Basissystems. Beispiele: fstab, hosts, lsb-release, blkid.tab; hier liegende Konfigurationsdateien können durch gleichnamige Konfigurationsdateien im Homeverzeichnis überlagert werden. Beispiel: bash.bashrc

Unterverzeichnisse u.a.:

/home

Von: home-directory (Heimatverzeichnis); enthält pro Benutzer ein Unterverzeichnis; jedes Verzeichnis wird nach dem Anmeldenamen benannt; ausführlicher Artikel: Homeverzeichnis

/lib

Von: libraries (Bibliotheken); muss bei Systemstart vorhanden sein; enthält unverzichtbare Bibliotheken fürs Booten und die dynamisch gelinkten Programme des Basissystems; mindestens notwendige Dateien bzw. symbolische Verknüpfungen: libc.so.* (C-Bibliotheken), ld* (Bibliotheksdaten: Versionen, Zugriffspfade,...)

Unterverzeichnisse u.a.:

/lost+found

(verloren und gefunden); Dateien und Dateifragmente, die beim Versuch, ein defektes Dateisystem zu reparieren, übrig geblieben sind. Das Verzeichnis ist auf Partitionen mit reiserfs oder xfs nicht vorhanden. Siehe auch Datenrettung (Abschnitt „lost-found“).

/media

Für (Speicher-)Medien. Enthält Unterverzeichnisse, welche als mount- oder Einhängepunkte für transportable Medien wie z.B. externe Festplatten, USB-Sticks, CD-ROMs, DVDs und andere Datenträger dienen. Ubuntu legt hier auch die Einhängepunkte für Partitionen an. Unterverzeichnisse sind u.a.:

Ab Ubuntu 12.10 wurde die Verwendung des Benutzernamens eingeführt. Beispiele:

/mnt

Von: mount (eingehängt); normalerweise leer; kann für temporär eingehängte Partitionen verwendet werden. Für Datenträger, die hier eingehängt werden, wird im Gegensatz zu /media kein Link auf dem Desktop angelegt (gilt nur für GNOME).

/opt

Von: optional; ist für die manuelle Installation von Programmen gedacht, die ihre eigenen Bibliotheken mitbringen und nicht zur Distribution gehören; siehe /opt; Speicherort für selbst erstellte Programme siehe /usr/local in /usr

/proc

Von: processes (laufende Programme); muss bei Systemstart vorhanden sein; enthält Schnittstellen zum aktuell geladenen Kernel und seinen Prozeduren; Dateien lassen sich mittels cat auslesen; Beispiele: version (Kernelversion), swaps (Swapspeicherinformationen), cpuinfo, interrupts, usw.;

Unterverzeichnisse u.a.:

Experten-Info:

/proc ist im eigentlichen Sinne kein Verzeichnis, sondern ein spezielles, virtuelles Dateisystem vom Typ "proc", welches lediglich Schnittstellen zu Kernelprozeduren beinhaltet.

/root

Ist das Homeverzeichnis des Superusers (root). Der Grund, wieso sich das /root-Verzeichnis im Wurzelverzeichnis und nicht im Verzeichnis /home befindet, ist, dass das Homeverzeichnis von Root immer erreichbar sein muss, selbst wenn die Home-Partition aus irgendeinem Grund (Rettungs-Modus, Wartungsarbeiten) mal nicht eingehängt ist.

Hinweis:

Programme, die per gksudo bzw. kdesudo - nicht aber sudo - ausgeführt werden, bekommen dieses Verzeichnis als Heimatverzeichnis zugewiesen.

Dies hat z.B. Auswirkungen auf zu installierende Programme oder gelöschte Dateien (diese findet man dann unter /root/.local/Trash)

Da die Programme gksudo und kdesudo aber nicht mehr gewartet wurden, sind sie seit Ubuntu 18.04 nicht mehr in den Paketquellen, d.h. gksudo und kdesudo sind nur bis einschließlich Ubuntu 17.10 verfügbar.

/run

Die Benutzung dieses Ordners wurde erst mit Ubuntu 11.10 eingeführt und dient als Ersatz für bisher verwendete Ordner:

/sbin

Von: system binaries (Systemprogramme); muss bei Systemstart vorhanden sein; enthält alle Programme für essentielle Aufgaben der Systemverwaltung; Programme können nur vom Systemadministrator (root) oder mit Superuserrechten ausgeführt werden; Beispiele: shutdown (Herunterfahren (Abschnitt „Herunterfahren-per-Terminal“)), make2fs, lsmod (Kernelmodule)

/srv

Von: services (Dienste); Verzeichnisstruktur noch nicht genau spezifiziert; soll Daten der Dienste enthalten; unter Ubuntu in der Regel leer.

/sys

Von: system; im FHS noch nicht spezifiziert; erst ab Kernel 2.6. im Verzeichnisbaum enthalten; besteht ebenso wie /proc hauptsächlich aus Kernelschnittstellen

Experten-Info:

/sys ist im eigentlichen Sinne kein Verzeichnis, sondern ein spezielles virtuelles Dateisystem vom Typ "sysfs", welches ebenso wie /proc lediglich Schnittstellen zu Kernelprozeduren beinhaltet.

/tmp

Von: temporary (temporär); enthält temporäre Dateien von Programmen; Verzeichnis soll laut FHS beim Booten geleert werden.

/usr

Von: user (siehe: Herkunft); enthält die meisten Systemtools, Bibliotheken und installierten Programme; der Name ist historisch bedingt - früher, als es /home noch nicht gab, befanden sich hier auch die Benutzerverzeichnisse;

Hinweis:

Da für die (De-)Installation von Programmen die Paketverwaltung verantwortlich ist, sollte dieses Verzeichnis (abgesehen von /usr/local) nur von der Paketverwaltung angetastet werden.

Unterverzeichnisse u.a.:

/var

Von variable (variabel); enthält nur Verzeichnisse; Dateien in den Verzeichnissen werden von den Programmen je nach Bedarf geändert (im Gegensatz zu /etc); Beispiele: Log-Dateien, Spielstände, Druckerwarteschlange

Unterverzeichnisse u.a.:

Aufteilen der Verzeichnisse auf verschiedene Partitionen

Es ist möglich, die Dateisystemhierachie auf verschiedene Dateisysteme (unter Umständen sogar auf verschiedene Speichermedien wie z.B. RAIDs) auszulagern; dies hat den Vorteil, dass Performance und Datensicherheit für bestimmte Teile der Hierarchie gewährleistet werden können.

Hinweis:

Bitte beachte, dass dies nur ein Vorschlag ist. Abhängig von den installierten Anwendungen ist diese Konfiguration mehr oder weniger sinnvoll. Auch mit nur einer Partition kann man ein System sinnvoll betreiben!

Ein typisches Desktop-System könnte wie folgt partitioniert sein:

Ein typischer Server könnte so partitioniert sein; es ist zu beachten, dass verschiedene Serverdienste eine andere Partitionierung erfordern!