2285834

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

19.07.2017 | 14:50 Uhr |

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?

Laufwerksbuchstaben sucht man unter Linux vergeblich. Zwar gibt es natürlich auch in Linux-Systemen unterschiedliche Partitionen, also verschiedene physikalische Speicherorte. Diese werden aber in einer einzigen Struktur verzweigter Verzeichnissen abgebildet, die ausgehend vom Wurzelverzeichnis mit dem Pfad „/“ alles Weitere als Unterverzeichnis einbinden. Eine separate Partition wird also als Unterverzeichnis geführt und nicht etwa als eigenständiges separates Dateisystem mit eigenem Wurzelverzeichnis. Die Namen der wesentlichen Unterordner, die zum Betrieb eines Linux-Systems unabdingbar sind, folgen außerdem stets dem gleichen Namensschema. Dies sind die wichtigsten Orte, die es in jedem regulären Linux-System gibt:

„/bin“ ist das Verzeichnis jener ausführbarer Dateien (Binaries), die das System benötigt und die schon nach dem Start verfügbar sein müssen. Das Verzeichnis „/sbin“ ergänzt diese Dateien um jene Programme, die nur der root-Benutzer ausführen darf.

„/boot“ enthält Dateien, mit welchen Linux zunächst bootet, also mindestens den Bootloader und den Kernel an sich. Außerdem ist eine Ramdisk namens „initramrd“ vorhanden, die Dateien und Treiber für die Initialisierung des Systems enthält.

„/dev“ ist das Systemverzeichnis für Gerätedateien. Diese sind eine Besonderheit von Linux, denn sämtliche erkannten Geräte und deren Eigenschaften sind, strikt nach Unix-Philosophie, immer als Datei abgebildet.

„/etc“ beherbergt stets als zentrales Verzeichnis alle systemweiten Konfigurationsdateien. Hier liegen in weiteren Unterverzeichnissen und Einzeldateien die Einstellungen der Systemkomponenten und Serverdienste sowie diverse Voreinstellungen für Benutzer.

Der Blick vom Wurzelverzeichnis aus: Linux kennt keine Laufwerksbuchstaben. Alles, was im System eingebunden ist, wird als Verzeichnis eingebunden.
Vergrößern Der Blick vom Wurzelverzeichnis aus: Linux kennt keine Laufwerksbuchstaben. Alles, was im System eingebunden ist, wird als Verzeichnis eingebunden.

Mit Dateien unter „/etc“ hat man bei der Administration eines Systems ständig zu tun.

„/home“ ist der Ordner, in dem man sich bei der täglichen Arbeit dauernd aufhält. Jeder Benutzer erhält unter „/home“ sein eigenes Verzeichnis, in dem er sämtliche Zugriffsrechte hat. Hier liegen sowohl die persönlichen Dateien und Dokumente als auch die persönlichen Konfigurationsdateien. Außer root hat kein anderer Benutzer Zugriff auf das eigene Home-Verzeichnis, das unter „/home/[Benutzername]“ bei der Erstellung von Benutzerkonten automatisch angelegt wird.

„/lib“ sowie „/lib32“ und „/lib64“ sind für Anwender eigentlich kaum von Bedeutung. Hier lagert das System gemeinsam genutzte Programmbibliotheken aller Art.

„/lost+found“ gibt es auf jeder Partition (physikalischer Datenträger) einmal. Dorthin kommen – bei einer Dateisystemhavarie – wiederhergestellte Dateien und Rohdaten nach einer Festplattenprüfung. Dieses Verzeichnis gibt es indes nur bei Unix-Dateisystemen wie Ext 2/3/4, XFS, BTRFS und anderen.

„/mnt“ und „/media“ enthalten als Unterverzeichnis eingehängte externe Datenträger – beispielsweise eingelegte DVDs oder angeschlossene USB-Sticks.

„/opt“ steht für „optional“ und ist der richtige Ort für nachträglich installierte Programme, die nicht zum Standardrepertoire einer Linux-Distribution in deren Paketquellen gehören. Hier dürfen sich Binaries und auch deren eigene Bibliotheken nach Belieben ausbreiten.

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.

„/proc“ ist ein Verzeichnis für spezielle Dateien, die das System selbst pflegt und die aktive Prozesse abbilden. Jedes ausgeführte Programm legt hier eine Datei mit dem aktuellen Zustand ab. Zudem verbucht der Kernel hier in Einzeldateien wichtige Systeminfos.

„/tmp“ enthält nur temporäre Dateien, die während des Betriebs von Anwendungen entstehen und die anschließend verworfen werden können.

„/usr“ hat mit Benutzern wenig zu tun, auch wenn der Name dies nahelegt. Stattdessen ist es das Verzeichnis für Programme, die vom System selbst nicht unbedingt zur grundlegenden Funktion benötigt werden.

„/var“ versammelt alle Dateien, die von Serverdiensten oder vom System selbst im laufenden Betrieb erstellt, beschrieben und eventuell auch wieder gelöscht werden, jedoch nicht nur temporär sind. Hier finden sich beispielsweise wichtige Logdateien, der Druckerspooler und die Arbeitsverzeichnisse eines Mailservers.

„/root“ ist das Home-Verzeichnis des Pseudobenutzers „root“, den es auf jedem Linux-System gibt, der aber kein reguläres Benutzerkonto ist. In Ubuntu und Linux Mint ist die Anmeldung als root sogar deaktiviert. Das Verzeichnis ist für Notfälle unverzichtbar, für den täglichen Betrieb ist es aber unerheblich.

Versteckte Dateien: Einen Punkt machen

Ob ein Verzeichnis oder eine Datei in einem Linux-Dateisystem sichtbar ist, ist keine Sache der Rechte oder Dateiattribute. Verstecktes gibt es unter Linux nicht wirklich, denn in der Shell (Kommandozeile) ist sowieso alles sichtbar. In Dateisystemen lassen sich Dateien sowie Ordner aus kosmetischen Gründen trotzdem verbergen und diese Funktion lässt das Home-Verzeichnis erfreulich aufgeräumt erscheinen.

Versteckt oder nicht – für diesen Unterschied sorgt lediglich ein Punkt (.) am Anfang von Datei-und Ordnernamen. In der Kommandozeile zeigt der List-Befehl

ls -la

alle Elemente an. In grafischen Dateimanagern hat sich die Tastenkombination Strg-H durchgesetzt, um Verstecktes bei Bedarf ein-und auszublenden.

Tipp: Die beste Distribution für den Linux-Umstieg

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.

Dateisysteme: Linux als Multitalent

Nicht nur ein, zwei, drei Dateisysteme sind zur Formatierung von Datenträgern unter Linux vorgesehen. Es gibt ein ganzes Arsenal an interessanten, bewährten und über Jahrzehnte weiterentwickelten Dateisystemen. Ext4, XFS und das noch recht junge BTRFS sind die verbreiteten Linux-Dateisysteme. Für Einsteiger ist Ext4 als universeller Alleskönner für die Partitionen eines Linux-Systems empfehlenswert, egal ob SSD oder mechanische Festplatte.

Ob ein Linux-System mit einem Dateisystem sofort umgehen kann, ist von Kernel-Modulen abhängig. Der Kernel lernt diese Fähigkeiten über Treibermodule, die den gesamten Zugriff auf unterster Ebene festlegen. Generell lädt eine Linux-Distribution jene Dateisystem-Module, die Linux zugehörig sind oder Open-Source. Dazu zählen beispielsweise auch Fat und Fat32. Im Hinblick auf fremde Dateisysteme ist der Linux-Pinguin sehr vielseitig und kann mit allen verbreiteten Dateisystemen umgehen. Selbst wenn die Firmen hinter diesen Dateisystemen, etwa NTFS und Exfat von Microsoft sowie HPFS+ von Apple, keine ausreichende Dokumentation zu alternativen Treibern bereitstellen, so hat die Open-Source-Szene über Reengineering meist eigene Lösungen nachgebaut. Ubuntu und Linux laden bei einer Einbindung von NTFS-Partitionen selbständig ein NTFS-Modul.

Die Unterstützung für Microsofts Exfat ist mit der Installation zweier kleiner Pakete mittels des Kommandos

sudo apt-get install exfat-fuse exfat-utils

schnell nachgerüstet.

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.

Schritt für Schritt: So klappt der Umstieg zu Linux

0 Kommentare zu diesem Artikel

PC-WELT Marktplatz

2285834