1645308

Organisation und Rechte im Linux-Dateisystem

11.07.2017 | 14:00 Uhr |

Laufwerksbuchstaben gibt es bei Linux nicht, dafür aber standardisierte Ordner in einem einzigen Verzeichnisbaum. Der grundlegende Aufbau ist bei allen Linux-Distributionen im Wesentlichen identisch.

Für die Systemkonfiguration und die Fehlersuche sind Kenntnisse der Struktur des Linux-Dateisystems und der Rechteverwaltung hilfreich bis unentbehrlich. Es gibt Situationen, in denen Sie sich intensiver mit Ordnern und Zugriffsrechten befassen müssen, etwa wenn Sie eine weitere Festplatte einbinden und Dateien darauf auslagern möchten.

Die wichtigsten Verzeichnisse

Bei Linux liegen alle Verzeichnisse unterhalb von „/“, auch das Wurzel-oder root-Verzeichnis genannt. „root“ (englisch für „Wurzel“) ist hier nicht zu verwechseln mit dem administrativem Benutzer „root“, dessen Home-Verzeichnis unter „/root“ liegt.

Sie sehen alle vorhandenen Ordner, wenn Sie im Dateimanager etwa unter Ubuntu auf „Rechner“ klicken. Bei einer Standard-Linux-Installation liegen alle Ordner auf einer einzigen Partition, die in „/“ eingehängt ist (Mountpunkt).

Standardbenutzer haben nur Leserechte, können also keine Dateien löschen oder ändern.
Vergrößern Standardbenutzer haben nur Leserechte, können also keine Dateien löschen oder ändern.

„/bin“ und „/sbin“ enthalten ausführbare Dateien (Binaries), die das System benötigt und die schon nach dem Start verfügbar sein müssen. Programme in „/sbin“ dienen zur Systemverwaltung und erfordern administrative Rechte.

„/boot“ enthält Dateien, mit welchen Linux zunächst bootet, also mindestens den Bootloader und den Kernel. 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 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. 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 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 dem Besitzer und root hat niemand Schreibzugriff auf die Verzeichnisse unterhalb von „/home“.

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

„/media“ enthält Unterverzeichnisse mit automatisch eingehängten externen Datenträger – beispielsweise eingelegte DVDs oder angeschlossene USB-Sticks. „/mnt“ ist für den gleichen Zweck vorgesehen, wird aber von aktuellen Linux-Systemen nicht mehr verwendet.

„/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.

„/proc“ und „sys“ sind Verzeichnisse für spezielle Dateien, die das System selbst pflegt und aktive Prozesse abbilden. Jedes ausgeführte Programm legt hier eine Datei mit dem aktuellen Zustand ab. Zudem verbucht der Kernel 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“ steht für „User System Resources“. Hier liegen vor allem unter „/usr/bin“ ausführbare Programme für das Terminalfenster und die grafische Oberfläche. Eine besondere Rolle spielen die Ordner unterhalb von „/usr/local“, in denen selbst kompilierte oder heruntergeladene Programme landen können. Anwendungen in „/usr/local/bin“ haben Vorrang vor denen in „/usr/bin“. Dadurch ist es möglich, aktualisierte Tools zu installieren und ohne Einfluss auf die Paketverwaltung zu verwenden.

„/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 Arbeitsverzeich-nisse eines Mailservers.

Zugriffrechte im Dateisystem

Als Standardbenutzer haben Sie nur Schreibrechte im Ihrem eigenen Home-Verzeichnis und im Ordner „/tmp“. In den meisten anderen Verzeichnissen besitzen Sie nur Leserechte, die auch nötig sind, um Programme etwa aus „/usr/bin/“ zu starten.

Unter Linux gehören Ordner und Dateien einem Benutzer („Eigentümer“) und einer Gruppe. Die eigenen Dateien unter „/home/sepp“ beispielsweise gehören dem Benutzer „sepp“ und der gleichnamigen Gruppe. Für jedes Element im Dateisystem lassen sich Lese-und Schreibrechte vergeben, getrennt nach Eigentümer und Gruppe. Zudem gibt es das Recht „Ausführen“. Ist es bei einer Datei gesetzt, darf ein Benutzer sie als Programm starten. Bei Ordnern gewährt es die Berechtigung, ihn zu öffnen beziehungsweise den Inhalt anzusehen.

Außerdem lassen sich Rechte für „Andere“ festlegen. Damit sind Zugriffe von Benutzern gemeint, die weder Eigentümer sind noch zu der festgelegten Gruppe gehören.

Lesetipp Terminal-Tuning: Linux-Tricks für mehr Komfort

Rechte über den Dateimanager ändern

Welche Rechte für einen Ordner oder eine Datei gelten, lässt sich über einen Dateimanager ermitteln – unter Ubuntu etwa mit Nautilus.

Nautilus unter Ubuntu: Sie können Berechtigungen für Ordner ändern.
Vergrößern Nautilus unter Ubuntu: Sie können Berechtigungen für Ordner ändern.

Nutzer von Linux Mint können den Dateimanager Nemo per Doppelklick auf das Desktopsymbol „Persönlicher Ordner“ öffnen. Gehen Sie auf „Rechner“ (Ubuntu) beziehungsweise „Dateisystem“ (Linux Mint) und dann in den Ordner „home“. Klicken Sie Ihr Home-Verzeichnis mit der rechten Maustaste an, wählen Sie „Eigenschaften“ und dann die Registerkarte „Zugriffsrechte“.

In Nautilus können Sie hinter „Zugriff“ die Rechte für „Besitzer“, „Gruppe“ und „Andere“ festlegen. Sie haben die Wahl zwischen „Dateien nur auflisten“ (lesen), „Auf Dateien zugreifen“ (ausführen/suchen) und „Dateien erstellen und löschen“ (schreiben). Bei „Gruppe“ und „Andere“ gibt es zudem „Keiner“, was den Zugriff für beide unterbindet. Das Recht „Dateien nur auflisten“ führt bei Ordnern effektiv ebenfalls dazu, dass ein Zugriff auf den Inhalt nicht möglich ist.

Sie werden bemerken, dass bei den Zugriffsrechten für „Andere“ der Wert „Auf Dateien zugreifen“ eingestellt ist. Andere Benutzer können daher den Inhalt fremder Home-Verzeichnisse einsehen und Dateien öffnen, aber nicht verändern. Wenn Sie das nicht möchten, setzen Sie für Ihr Benutzerverzeichnis die Rechte für „Andere“ hinter „Zugriff“ auf „Keiner“.

Über die Schaltfläche „Zugriffsrechte der enthaltenen Dateien ändern“ lassen sich bei Ordnern in einem eigenen Dialog die Rechte auch rekursiv für alle enthaltenen Elemente setzen – für „Besitzer“, „Gruppe“ und „Andere“ jeweils getrennt für die enthaltenen Dateien und Ordner.

Bei Linux Mint funktioniert die Rechtevergabe über den Dateimanager Nemo ähnlich, das Fenster „Eigenschaften -> Zugriffsrechte“ sieht nur etwas anders aus.

Die Registerkarte Zugriffsrechte zeigt mehr Optionen als bei Ubuntu.
Vergrößern Die Registerkarte Zugriffsrechte zeigt mehr Optionen als bei Ubuntu.

Es gibt die drei Rubriken „Eigentümer“, „Gruppe“ und „Andere“, bei der letzten fehlt allerdings die Beschriftung. Hinter „Ordnerzugriff“ stellen Sie wie bei Ubuntu die Zugriffsrechte ein. Zusätzlich gibt es Auswahlfelder hinter „Dateizugriff“. Einstellungen, die Sie hier vornehmen, gelten zusammen mit denen hinter „Ordnerzugriff“ für alle Unterordner und Dateien, wenn Sie die Option „Zugriffsrechte auf enthaltene Dateien übertragen“ verwenden.

Auch interessant Desktop und Systemzentralen unter Linux Ubuntu und Mint

Rechte auf der Kommandozeile festlegen

Das Terminal kann die Zugriffsrechte schneller festlegen als grafische Dateimanager. Mit dem Befehl

ls -l /home

lassen Sie sich die Zugriffsrechte, Besitzer und Gruppen anzeigen.

In der ersten Spalte symbolisiert das vorangestellte „d“ Verzeichnisse („directory“). Direkt dahinter folgen die Rechte für „Benutzer“, „Gruppe“ und „Andere“. Eine Ausgabe wie „drwxr-x---“ bedeutet Lesen („r“), Schreiben („w“) und Ausführen/Suchen („x“) für den Benutzer.

Die Gruppe darf lesen sowie ausführen/suchen („r-x“), „Andere“ haben keinen Zugriff („---“).

Mit dem Befehl chmod ändern Sie die Rechte:

chmod o+rx /home/sepp

„Andere“ („o“) dürfen dann auf das Verzeichnis zugreifen und Dateien lesen. Wenn Sie die Rechte für Dateien/Ordner ändern möchten, die nicht Ihnen gehören, stellen Sie diesem und allen folgenden Befehlen ein „sudo“ voran. Mit

chmod o-rx /home/sepp

entfernen Sie die Berechtigungen wieder. Entsprechend setzen Sie „u“ für Benutzer und „g“ für Gruppe ein.

chmod g+rw /home/sepp/Datei.txt

gibt der Gruppe Lese-und Schreibzugriff für eine Datei.

Der Besitzer einer Datei lässt sich mit dem Befehl chown ändern. Die allgemeine Form lautet

sudo chown [User] [Datei/Ordner]

Die Befehle chmod, chgrp und chown verarbeiten die zusätzliche Option „-R“. Der Befehl

sudo chown -R sepp /home/sepp

ändert bei allen Elemente unterhalb des angegeben Pfades den Eigentümer auf den Benutzer „sepp“.

Kommandozeile: Mit Hilfe des Tools chmod legen Sie die Zugriffsrechte für Dateien und Ordner fest.
Vergrößern Kommandozeile: Mit Hilfe des Tools chmod legen Sie die Zugriffsrechte für Dateien und Ordner fest.

Zusätzliche Festplatten und Rechte

Externe USB-Laufwerke, die mit dem Dateisystem NTFS oder FAT32 formatiert sind, erscheinen automatisch im Dateimanager. Jeder Benutzer hat darauf Lese-und Schreibzugriff. Wenn Sie jedoch mehr Speicherplatz für Dateien benötigen, eine neue Festplatte in den PC einbauen und diese mit dem Linux-Dateisystem Ext4 formatieren, erhalten Sie standardmäßig nur Lesezugriff. Das Problem lässt sich lösen, indem Sie das Tool gnome-disks verwenden. Damit können Sie Festplatten formatieren und die Art der Einbindung in das Dateisystem ändern.

Nutzer von Linux Mint starten das Tool über „Zubehör -> Laufwerke“, unter Ubuntu suchen Sie im Dash nach „Laufwerke“. Auf der linken Seite des Fensters wählen Sie die neue Festplatte aus, klicken dann im rechten Bereich des Fensters auf die Schaltfläche mit dem Zahnradsymbol und wählen im Menü „Partition formatieren“. Hinter „Typ“ wählen Sie „Kompatibel mit Linux-Dateisystem (Ext4)“ und hinter „Name“ geben Sie eine aussagekräftige Bezeichnung ein, beispielsweise „Data“. Klicken Sie auf „Formatieren“, danach erneut auf „Formatieren“ und bestätigen Sie den Vorgang mit Ihrem Passwort. Über die „Play“-Schaltfläche neben dem Zahnradsymbol lässt sich die neue Partition in das Dateisystem unterhalb von „/media/[User]/Data“ einbinden. Wenn Sie sich die Zugriffsrechte über den Dateimanager ansehen, stellen Sie fest, dass der Ordner danach Ihnen gehört und nur Sie Vollzugriff haben.

In den Einhängeoptionen von gnome-disks legen Sie fest, über welchen Ordner im Dateisystem Sie auf das Laufwerk zugreifen können.
Vergrößern In den Einhängeoptionen von gnome-disks legen Sie fest, über welchen Ordner im Dateisystem Sie auf das Laufwerk zugreifen können.

Mehrbenutzersystem: Damit auch andere Nutzerkonten das Laufwerk nutzen können, hängen Sie die Partition über die „Stop“-Schaltfläche wieder aus. Klicken Sie auf das Zahnradsymbol und auf „Einhängeoptionen bearbeiten“. Setzen Sie den Schalter hinter „Optionen zum automatischen Einhängen“ auf „Aus“. Hinter „Einhängepunkt“ geben Sie das gewünschte Verzeichnis an, beispielsweise „/mnt/Data“. Das Verzeichnis muss nicht existieren, es wird automatisch angelegt. Klicken Sie auf die „Play“-Schaltfläche, um das Laufwerk in das Dateisystem einzubinden.

Das alleine genügt jedoch noch nicht, denn das Verzeichnis „/mnt/Data“ gehört auch jetzt dem Benutzer, der es angelegt hat. Damit auch andere Benutzer des PCs auf die Dateien zugreifen können, gehen Sie im Dateimanager auf „/mnt/Data“. Wählen im Kontextmenü „Eigenschaften“ und gehen auf die Registerkarte „Zugriffsrechte“. Ändern Sie für „Andere“ hinter „Zugriff“ die Einstellung in „Auf Dateien zugreifen“.

Soll auch der Schreibzugriff möglich sein, könnten Sie im Prinzip „Dateien erstellen und löschen“ wählen. Das hat jedoch einen gravierenden Nachteil: Legt ein Benutzer Ordner oder Dateien an, dann gehören diese ihm – allen anderen Benutzern fehlt dann der Schreibzugriff. Um das zu ändern, steuern Sie den Zugriff über die Gruppenzugehörigkeit und Access Control Lists (kurz ACL). Das dafür nötige Tool setfacl ist unter Ubuntu 16.04 und Linux Mint 18.x standardmäßig installiert. Führen Sie im Terminal folgende fünf Befehlszeilen aus:

sudo mkdir /mnt/Data/Projekte
sudo chgrp plugdev /mnt/Data/Projekte
sudo chmod g+rwx /mnt/Data/Projekte
sudo chmod g+s /mnt/Data/Projekte
sudo setfacl -R -dm u::rwx,g:plugdev:rwx,o::rx /mnt/Data/Projekte

Damit erstellen Sie das Verzeichnis „/mnt/Data/Projekte“ für den Datenaustausch.

Es gehört der Gruppe „plugdev“, die Vollzugriff erhält. „chmod g+s“ bewirkt, dass die Gruppe erhalten bleibt, wenn ein Benutzer neue Dateien oder Ordner anlegt. Mit setfacl setzten Sie die Standardzugriffsrechte, die auf alle enthaltenen und zukünftigen Elemente vererbt werden.

Im Ergebnis erhalten alle Mitglieder der Gruppe „plugdev“ Lese-und Schreibzugriff, andere Benutzer nur eine Leseberechtigung.

Nun müssen Sie nur noch alle Benutzer, die Schreibzugriff erhalten sollen, zur Gruppe hinzufügen:

sudo usermod -aG plugdev [User]

Den Platzhalter „[User]“ ersetzen Sie durch den gewünschten Benutzer.

Lesetipp Die richtige Linux-Distribution für Einsteiger

Ordner auf eine andere Festplatte auslagern

Unter Linux spielt es keine Rolle, auf welcher Festplatte oder Partition ein Verzeichnis tatsächlich liegt. Wenn der Platz knapp wird, können Sie einen Ordner wie „/home“ jederzeit von einem anderen Laufwerk einbinden. Voraussetzung dafür ist, dass Sie bereits eine zweite Festplatte wie im Punkt „Zusätzliche Festplatten und Rechte“ beschrieben unter „/mnt/Data“ eingebunden haben. Es genügt, dass Sie für „Andere“ hinter „Zugriff“ das Recht „Auf Dateien zugreifen“ eingestellt haben. ACLs verwenden Sie hier nicht, weil unter „/home“ jeder Benutzer in der Regel nur auf seine eigenen Dateien zugreifen muss.

Beenden Sie alle Programme und öffnen Sie ein Terminal. Unter Linux Mint beenden Sie mit

sudo service mdm stop

die grafische Oberfläche, unter Ubuntu-Nutzer mit diesem Befehl:

sudo service lightdm stop

Sie befinden sich jetzt auf einer Textkonsole, bei der Sie sich mit Ihrem Benutzernamen anmelden. Das Passwort tippen Sie blind ein, es wird nicht angezeigt. Sollte die Konsole nicht zu sehen sein, drücken Sie Alt-F1.

Als Erstes kopieren Sie die Home-Verzeichnisse auf die zweite Festplatte:

sudo rsync -aXS /home/ /mnt/Data/home/

Dann benennen Sie das Verzeichnis „/home“ um und legen ein neues Verzeichnis an:

mv /home /home.bak
mkdir /home

Laden Sie dann die Filesystem-Tabelle in den Editor nano:

sudo nano /etc/fstab

Im Editor fügen Sie die Zeile

/mnt/Data/home /home bind defaults,bind 0 0

ein. Damit konfigurieren Sie die Verbindung von „/mnt/Data/home“ auf der neuen Festplatte mit dem Ordner „/home“ auf der Systemfestplatte.

Drücken Sie Strg-X und bestätigen Sie mit „j“ und Eingabetaste. Mit dem Befehl

sudo mount -a

hängen Sie den Ordner in das Dateisystem ein. Danach führen Sie mitsudo reboot einen Neustart durch.

0 Kommentare zu diesem Artikel
1645308