Grundlagen des Dateisystems

Zusammenfassung

In der Arbeit mit Dateien gibt es zwischen GNU/Linux und Windows® sowie den meisten anderen Betriebssystemen wesentliche Unterschiede. Dieses Kapitel wird die hauptsächlichen Merkmale aufzeigen. Weitere Informationen erhalten Sie im Kapitel Kapitel 9, GNU/Linux Dateisysteme.

Die wesentlichen Unterschiede resultieren aus der Tatsache, dass Linux ein Mehrbenutzer-System ist: jede Datei ist alleiniger Besitz eines Benutzerkennzeichens und einer Gruppe. Jedes Benutzerhonto besitzt ein persönliches Verzeichnis (genannt Home-Verzeichnis). Das Benutzerkennzeichen ist der Eigentümer des Verzeichnisses und aller darin befindlichen Dateien.

Das wäre aber ungenügend als alleiniges Zeichen des Besitzes an einer Datei. Der Eigentümer einer Datei kann ihr verschiedene Rechte zuweisen. Diese Rechte unterscheiden zwischen drei Benutzerkategorien: dem Besitzer der Datei, der Gruppe, der diese Datei gehört (und dazu zählen alle Mitglieder der Gruppe, daher auch der Name Besitzergruppe) und schließlich der Rest der Welt, die Anderen. Dazu gehören alle Benutzer, die weder der Besitzer noch Mitglieder der Besitzergruppe sind.

Es gibt drei verschiedene Rechte:

  1. Read (r, lesen) erlaubt dem Benutzer, den Inhalt der Datei zu lesen. Für ein Verzeichnis bedeutet das, der Benutzer kann den Inhalt auflisten (also die einzelnen Dateien).

  2. Write (w, schreiben) erlaubt das Verändern des Inhaltes der Datei. Bei einem Verzeichnis bedeutet das, der Benutzer kann Dateien in das Verzeichnis einfügen und daraus entfernen, auch wenn er nicht der Besitzer dieser Dateien ist.

  3. eXecute (x, ausführen) erlaubt die Ausführung einer Datei (normalerweise wird dieses Recht nur bei ausführbaren Dateien gesetzt). Bei einem Verzeichnis bedeutet dieses Recht, dass ein Benutzer es betreten bzw. durchqueren (traverse) darf. Das ist nicht zu verwechseln mit dem Lese-Recht: Sie können z.B. das Recht zum Betreten/Durchqueren eines Verzeichnisses besitzen, nicht aber das Leserecht für die darin enthaltenen Dateien!

Jede beliebige Kombination von Rechten ist möglich. Sie könnten sich z.B. das alleinige Leserecht einer Datei erteilen, den Zugriff aller anderen Benutzer aber sperren. Als Besitzer der Datei können Sie natürlich auch die Besitzergruppe ändern (allerdings nur, wenn Sie auch Mitglied der neuen Gruppe sind).

Lassen Sie uns das an einem Beispiel betrachten. Im Folgenden sehen Sie die Ausgabe auf den Befehl ls -l auf der Befehlszeile:

$ ls -l
total 1
-rw-r-----   1 franz    users           0 Jul  8 14:11 eine_datei
drwxr-xr--   2 birgit    users        1024 Jul  8 14:11 ein_verzeichnis/
$            

Die Bedeutung des Befehls ls -l (von links nach rechts):

Schauen wir uns mal die Zugriffsrechte der Dateien an, die jede besitzt. Zuerst streichen wir den ersten Buchstaben, der für den Typ steht, und bekommen so für eine_Dateidie folgenden Berechtigungen: rw-r-----. Hier nun eine Auflistung von Zugriffsrechten.

Für das Verzeichnis ein_Verzeichnis, sind die Rechte rwxr-xr--, also:

Es gibt allerdings eine einzige Ausnahme von diesen Regeln: root. root kann die Attribute (Rechte, Besitzer und Besitzergruppe) aller Dateien und Verzeichnisse ändern - selbst wenn er nicht der Eigentümer ist - und sich so die Besitzerschaft einer Datei sichern. Er kann Dateien lesen, auf die er keinen Zugriff hat, in Verzeichnisse wechseln, auf die er normalerweise keinen Zugriff hätte, und so weiter. Und wenn er einige Rechte ändern möchte, ist dies ebenfalls möglich. root hat die komplette Kontrolle über das System, was sehr viel Vertrauen in die Person mit dem root Passwort voraussetzt.

Schließlich sollte man sich noch den Unterschied in den Dateinamen zwischen UNIX® und Windows® ansehen. Da ist man unter UNIX® viel flexibler und nicht so eingeengt:

[Note]Anmerkung

Etliche grafische Anwendungen (Datei-Manager, Office Anwendungen, etc.) benutzen jedoch Dateiendungen zur Erkennung von Dateien, die sie selbst erstellt haben bzw. verarbeiten können. Darum ist es eine gute Idee, Dateierweiterungen für die Programme zu verwenden, die dies vorschlagen.



[1] Standardmäßig werden versteckte Dateien nicht im Dateimanager angezeigt, es sei denn, Sie ändern diese Einstellung. Zur Auflistung von versteckten Dateien in einem Terminal müssen Sie beii dem Kommando ls die option -aeingeben. Generell beinhalten diese Dateien Konfigurationseinstellungen. Schauen Sie sich als Beispiele in Ihrem home/-Verzeichnis einmal die Verzeichnisse .mozilla oder .openoffice an.