2285834

Linux-Dateisystem - das bedeuten /bin, /boot, /etc, /opt & Co.

28.11.2020 | 08:00 Uhr | David Wolski, Hermann Apfelböck

Datei kopieren, verschieben, bearbeiten: Dateioperationen gehören zu den häufigsten Alltagsaufgaben. Dabei sind Windows-Umsteiger aber mit einem anderen Aufbau der Linux-Dateisystemstruktur konfrontiert.

Linux hat den grundsätzlichen Aufbau und die Zugriffsrechte seines Dateisystems von Unix geerbt. Wie Unix arbeitet auch Linux mit stringenten, vergleichsweise einfachen Konzepten, die aber ihrer eigenen Logik folgen. Obwohl das Feld der Linux-Distributionen unüberschaubar groß ist, folgen alle Linux-Systeme einem sehr ähnlichen Aufbau, da dieser auch vom Linux-Kernel vorgegeben ist, der bestimmte Dateien stets am gleichen Speicherort erwartet.

Ist die erste Orientierung erst mal gelungen, gibt es bei der täglichen Arbeit kaum Abweichungen – egal, welches Linux-System zum Einsatz kommt. Dafür sorgt eine Übereinkunft zwischen den unterschiedlichen Linux-Softwarehäusern, die seit 1993 als „Filesystem Hierarchy Standard“ unter der Ägide der Linux Foundation gepflegt wird.

Die Hierarchie: Wo ist was?

Pfad

Beschreibung  

/

Wurzelverzeichnis, bei vielen Dateimanagern als „Rechner“ bezeichnet

/boot

systemkritischer Ordner mit den zum Booten notwendigen Dateien: Kernel, Bootmanager und Ramdisk „initramrd“ mit Treiberausstattung

/boot/grub

systemkritischer Ordner mit den Konfigurationsdaten für den Grub-Bootmanager; optionale Eingriffe in die Datei grub.cfg nur für erfahrene Benutzer

/bin

systemkritischer Ordner mit den zentralen ausführbaren Programmen, die für den Systembetrieb notwendig sind (etwa bash, chmod, login, lsblk, mount …); s. a. /sbin und /usr/bin

/cdrom

alter Mountordner für den Inhalt optischer Laufwerke, eigentlich obsolet (ähnlich das inzwischen seltene /floppy)

/dev

Systemverzeichnis für Gerätedateien: Alle erkannten Geräte sind hier konsequent als Datei abgebildet

/etc

zentrales Verzeichnis für alle systemweiten Konfigurationsdateien, zum Teil als Einzeldateien im Hauptverzeichnis /etc wie etwa sudoers (sudo-Rechte), fstab (Laufwerke), mime-types (Dateitypen), shadow (Konten und Kennwörter), zum größeren Teil in Extra-Verzeichnissen – prominente Beispiele: "/etc/apache2" für die Konfiguration des Apache-Webservers, "/etc/apt/" mit der Liste der angemeldeten Paketquellen (sources.list und /etc/apt/sources.list.d), "/etc/samba" mit der Konfiguration des Samba-Servers und der Windows-Freigaben (smb.conf), "/etc/ssh" mit der Konfiguration von Open SSH als Client (ssh_config) und Server (sshd_config) /etc/X11 für Konfigurationen der grafischen Oberfläche

/home

Sammelordner für alle sämtliche Benutzerkonten (mit Ausnahme von root)

/home/[user]/

Home-Verzeichnis eines Benutzers mit typischen Unterordnern für Benutzerdaten („Dokumente“, „Bilder“ etc.); /home/[user] ist neben den temporären Mountordnern /media/[user] und /run/user/[Konto-ID] das einzige Verzeichnis mit allen Rechten für den Benutzer inklusive Besitzrecht

/home/[user]/.cache

benutzerbezogener Zwischenspeicher hauptsächlich für Schriften, Bildminiaturen und Systemicons

/home/[user]/.config

wichtiger versteckter Sammelordner für benutzerspezifische Softwareeinstellungen (Desktop-einstellungen, Sprache, Autostart, Webbrowser, Mail, Mime-Dateitypen, Software aller Art)

/home/[user]/.local

weiterer Sammelordner für Desktop-Benutzereinstellungen, die Priorität über allgemeine Einstellungen erhalten, zum Beispiel eigene oder geänderte Verknüpfungen (.desktop-Dateien) unter ../.local/share/applications

/lost+found

enthält nach Dateisystemprüfungen mit fsck gerettete Dateifragmente (in der Regel nur für Forensiker verwertbar)

/media

Mountordner für Wechseldatenträger wie USB- oder DVD-Laufwerke, wird beim Automount grafischer Oberflächen nach Anschluss von Medien in der Regel als Mountpunkt genutzt (macht /cdrom und /floppy obsolet). Die Inhalte werden dabei unter /media/[user]/[Laufwerk] mit allen Rechten für den aktuellen Benutzer geladen.

/mnt

optionaler Ordner für temporäres und statisches Mounten externer Datenträger wie USB- oder DVD-Laufwerke (wird vom Automount auf heutigen Systemen nicht mehr genutzt, siehe /media)

/lib, /lib64

systemkritische Ordner mit unentbehrlichen Systembibliotheken (32 und 64 Bit). Weitere lib-Ordner mit Systembibliotheken (etwa /usr/lib, /var/lib) sind für Anwendungssoftware notwendig, aber nicht systemkritisch

/opt

optionaler Sammelordner für nachträglich installierte Anwendungsprogramme, die nicht zum Standardrepertoire einer Linux-Distribution gehören

/proc, /sys

Sammelordner für dynamisch abgefragte System- und Hardwaredaten aller Art, insbesondere zu CPU, RAM, Kernel, Datenträger und Prozesse; /proc ist Informationsquelle für viele Systemtools, etwa für CPU- oder RAM-Abfragen (Beispiel-Quelldateien: cpuinfo, meminfo, modules, mounts, partitions, uptime)

/tmp

Sammelordner für temporär benötigte Dateien bei der Softwareausführung und bei installationen – das einzige Verzeichnis, auf das alle Systemkonten uneingeschränkten Schreibzugriff haben

/root

Home-Verzeichnis des Pseudo-Kontos root; falls root aktiviert und genutzt wird, entstehen dieselben Unterverzeichnisse für Benutzerdaten und Konfigationsdaten wie bei /home/[user]

/run

dynamische Informationsablage für alle Programme (tmpfs-Ordner während der Systemlaufzeit)

/run/user/[user-id]/gvfs/

Mountordner für automatisch eingehängte Netzressourcen unter Gnome-artigen Desktops (Gnome, Budgie, Cinnamon, XFCE)

/usr

kein „User“- oder „Benutzer“-Ordner, sondern der umfangreiche Sammelordner für die nicht-systemnahe Anwendungssoftware („User System Resources“), also die am Desktop meistgenutzen Programme

/usr/bin

enthält die meiste Anwendungssoftware für die grafische Oberfläche (vgl. /bin und /sbin)

/usr/lib

bevorratet die zugehörigen Systembibliotheken für nicht-systemnahe Anwendungssoftware

/usr/local

ergänzender Softwareordner: ausführbare Programme unter /usr/local/bin haben Vorrang gegenüber dem Pfad /usr/bin

/usr/share/applications

Sammelordner für Programmstarter, die in Menüs oder am Desktop angezeigt werden

/sbin

systemkritischer Ordner mit zentralen ausführbaren Programmen für die Systemverwaltung, die nur mit root-Recht laufen (etwa fdisk, fsck, hdparm, mkfs, parted …); s. a. /bin und /usr/bin

/srv

gemäß FSH-Standard (Filesystem Hierarchy) der Standard-Mountordner für Datenträger auf Serversystemen, wobei manche Serversysteme nach wie vor /mnt oder /media verwenden

/var/log

Sammelordner für Systemprotokolle

/var/spool

Verzeichnis für abzuarbeitende Warteschlangen, in erster Linie Druckaufträge

/var/www/html

Standardordner für Apache- oder Nginx-Webdienste

Virtuelle Ordner *

Beschreibung

computer:///

nützliche Übersicht über alle physischen Datenträger sowie der aktuell eingehängten Netzwerkfreigaben

applications:///

Übersicht der installierten (Gnome-)Programme

burn:///

Dateien, die für das Brennen auf CD/DVD vorgemerkt sind

fonts://

Übersicht über die installierten Schriften

preferences:///

Systemeinstellungen – gleichbedeutend mit dem Aufruf gnome-control-center

trash:///

Papierkorb – gleichbedeutend mit Klick auf „Papierkorb“ im Dateimanager

Das Home-Verzeichnis: Im eigenen Verzeichnis unter „/home“ sind Anwender zu Hause und dürfen nach Belieben Dateien sowie Ordner anlegen, beschreiben und löschen. Allerdings nur dort.
Vergrößern Das Home-Verzeichnis: Im eigenen Verzeichnis unter „/home“ sind Anwender zu Hause und dürfen nach Belieben Dateien sowie Ordner anlegen, beschreiben und löschen. Allerdings nur dort.

Darf man das? Die Zugriffsrechte

Der hohe Sicherheitsstandard von Linux-Systemen wird von Profis und Open-Source-Fans oft und gern beschworen. Einen großen Anteil daran haben nicht nur geniale Entwickler, denn die sind rund um Linux genauso selten beziehungsweise fehlbar wie überall anders auch. Ein Großteil des Sicherheitskonzept fußt auf Zugriffsrechten im Dateisystem, die sehr streng festlegen, wer wohin darf, was beschreibbar und ausführbar ist. Diese Zugriffsrechte sind immer jeweils für drei Gruppen vergeben: Die erste Gruppe ist der Dateibesitzer (Owner), die zweite ist die Gruppenmitgliedschaft (Group) und die dritte ist die restliche Welt, also alle. Der root-Benutzer hat stets Vollzugriff auf alles.

Datei-und Verzeichnisrechte: Um die aufgelisteten Berechtigungen richtig zu interpretieren, sind auch die Namen von Besitzer (hier „xenial“) und Gruppe (hier „users“) wichtig.
Vergrößern Datei-und Verzeichnisrechte: Um die aufgelisteten Berechtigungen richtig zu interpretieren, sind auch die Namen von Besitzer (hier „xenial“) und Gruppe (hier „users“) wichtig.

Die elementaren Zugriffsrechte auf Dateien und Ordner sind ebenfalls drei an der Zahl: Lesen, Schreiben und Ausführen. Bei Verzeichnissen gilt Ausführen als Öffnen, also als Erlaubnis, in den Ordner hineinsehen zu dürfen. Bei der Arbeit mit Dateien begleiteten einen Zugriffsrechte auf Schritt und Tritt und selten muss man sie ändern.

In der Shell (Kommandozeile) sind Dateirechte mit dem Befehl

ls -l

detailliert einsehbar, der Ordner und Dateien tabellarisch auflistet. Die Angabe erfolgt hier pro Dateisystemobjekt in der Form kompakter Dreiergruppen beispielsweise, „-rwx--x--x“. Ein gesetzter Buchstabe bedeutet ein erteiltes, ein Strich dagegen ein verweigertes Recht. Lesen ist „r“, Schreiben entspricht „w“ und Öffnen beziehungsweise Ausführen ist als „w“ angegeben. Die erste Dreiergruppe betrifft den Besitzer der Datei, die zweite alle Benutzer, die in seiner Gruppe sind, und die dritte alle anderen Benutzer. Ein Beispiel:

-rwxr-xr-x

Das erste Zeichen ist ein Strich, was bedeutet, dass die Datei keine Besonderheiten aufweist. Bei einem Verzeichnis stünde dort ein „d“ für „directory“. Nun folgen die eigentlichen Zugriffsrechte. Der Name des Besitzers der Datei wird als erster Name nach den Zugriffsrechten angezeigt. Wenn es der eigene Benutzername ist, so bedeutet „rwx“, dass der eigene Benutzer die Datei sowohl lesen als auch schreiben und ausführen darf. Die zweite Dreierreihe gibt die Berechtigungen für die Gruppe an. Hier steht „r-x“. Jeder Benutzer, der sich in der angegebenen Gruppe befindet, kann sie also lesen und ausführen, darf aber nicht beschreiben.

Die letzte Dreierreihe „r-x“ besagt, dass auch alle anderen Benutzer die Datei zwar lesen und ausführen, nicht aber verändern dürfen.

Siehe auch: Die 10 wichtigsten Linux-Befehle für Einsteiger

Dateimanager: Unentbehrliche Helfer

Dateimanager Dolphin in KDE: Mit dem geteilten Fenster hat das KDE-Programm mehr zu bieten als die einfacher gehaltenen Dateimanager von Gnome, Unity, Mate und Cinnamon.
Vergrößern Dateimanager Dolphin in KDE: Mit dem geteilten Fenster hat das KDE-Programm mehr zu bieten als die einfacher gehaltenen Dateimanager von Gnome, Unity, Mate und Cinnamon.

Natürlich kann man in einem Linux-System allein in der Shell (Kommandozeile) durch ein Dateisystem navigieren und alle Dateioperationen ausführen. Einige altgediente Administratoren, die ihre Fähigkeiten an Unix-Maschinen geschärft haben, werden diesen Weg aufgrund seiner Universalität sogar bevorzugen. Normale Anwender hingegen brauchen solche Überlebenstechniken nicht unbedingt, denn fähige Dateimanager der grafischen Oberfläche erleichtern das Leben ungemein.

Nautilus: Dies ist der Standard-Dateimanager von Ubuntu. Es ist ein Ein-Fenster-Dateimanager für grundlegende Operationen, wie Umbenennen (Taste F2), Löschen (Entfernen-Taste) und zum Kopieren und Verschieben der markierten Dateien (Strg-C zum Kopieren, Strg-X zum Ausschneiden, Strg-V zum Einfügen).

Mit der Maus lassen sich einzelne oder mehrere Dateien und Ordner in ein anderes Fenster des Dateimanagers ziehen, wobei diese Objekte dann verschoben werden. Ein Rechtsklick öffnet über „Eigenschaften -> Zugriffsrechte“ die Einstellung oder Ansicht der jeweiligen Rechte von Ordnern und Dateien.

Caja und Nemo sind Abwandlungen von Nautilus beziehungsweise Vorläufer mit einem größeren Funktionsumfang. Caja ist in Ubuntu Mate der Standard-Dateimanager, Nemo arbeitete in Linux Mint. Die Grundfunktionen sind die gleichen wie in Nautilus, allerdings gibt es umfangreichere Einstellungsmöglichkeiten.

Dolphin: Im Funktionsumfang ist dieser Dateimanager von KDE ein anderes Kaliber als die eher simpel gehaltenen Dateimanager von Ubuntu und Linux Mint. Außerdem ist er keine Ein-Fenster-Angelegenheit: Die Taste F3 teilt die Ansicht in zwei Fenster ein, um Dateien leichter von A nach B zu verschieben.

Thunar: Der Dateimanager von XFCE, wie er etwa in Xubuntu vorinstalliert ist, wirkt äußerlich schlicht, ist aber Nautilus nachempfunden und hat Netzwerkfähigkeiten. Es gibt unter „Netzwerk durchsuchen“ eine Anbindung an Windows-Netzwerke, um auf Freigaben zuzugreifen.

Wichtiges Tool in der Shell: Der Midnight Commander ist ein Zwei-Fenster-Dateimanager für die Kommandozeile, der Dateioperationen im Textmodus deutlich vereinfacht.
Vergrößern Wichtiges Tool in der Shell: Der Midnight Commander ist ein Zwei-Fenster-Dateimanager für die Kommandozeile, der Dateioperationen im Textmodus deutlich vereinfacht.

Midnight Commander: Dateimanager gibt es nicht nur auf dem grafischen Desktop, sondern auch in der Shell (Kommandozeile). Nicht nur jene Anwender, die einen Raspberry Pi ohne grafische Benutzeroberfläche nutzen, sondern alle Linux-User sollten den Midnight Commander umgehend installieren. In Ubuntu und Linux Mint ist das Programm nicht vorinstalliert, findet sich aber in den Paketquellen. In einem Terminal installiert das Kommando

sudo apt-get install mc

den Dateimanager, der in seiner Form und Funktion dem Norton Commander nachempfunden ist. Zwei Fenster in der Kommandozeile, mit der Tab-Taste zu wechseln, einem integrierten Editor für Textdateien auf F4 und Kopieren (F5) sowie Verschieben (F6) machen diesen Shell-Dateimanager zu einem wichtigen Werkzeug.

Noch besser: Unter den Menüs „Links/Rechts“ gibt es Netzwerkverbindungen über SSH und Samba (Windows-Freigabe), um Dateien zu übertragen. Egal, auf welchem Desktop man sich einfindet, der Midnight Commander ist immer eine nützliche Ergänzung.

PC-WELT Marktplatz

2285834