Product SiteDocumentation Site

9.3. Berechtigungen verwalten

Linux ist eindeutig ein Mehrbenutzersystem, und daher ist es erforderlich, ein Berechtigungssystem bereitzustellen, um die genehmigten Arbeitsvorgänge an Dateien und Verzeichnissen zu kontrollieren, einschließlich aller Systemressourcen und Laufwerke (in einem Unix-System wird jedes Laufwerk als eine Datei oder ein Verzeichnis dargestellt). Dies ist allen Unix-Systemen gemein, aber eine Erinnerung ist immer sinnvoll, vor allem, da es einige sehr interessante und relativ unbekannte Verwendungen gibt.
Jede Datei und jeder Ordner hat spezifische Berechtigungen für drei Kategorien von Benutzern:
Drei Arten von Berechtigungen können kombiniert werden:
Bei einer Datei sind diese Berechtigungen leicht zu verstehen: Lesezugriff erlaubt das Lesen des Inhalts (einschließlich des Kopierens), Schreibzugriff erlaubt es, sie zu verändern, und Ausführungszugriff erlaubt es Ihnen, sie auszuführen (was nur funktionieren wird, wenn sie ein Programm ist).
Ein Verzeichnis wird anders gehandhabt. Lesezugriff gewährt das Recht, die Liste der Einträge (Dateien und Verzeichnisse) durchzugehen, Schreibzugriff erlaubt es, Dateien zu erstellen oder zu löschen, und Ausführungszugriff erlaubt es, es zu durchqueren (insbesondere dorthin mit dem Befehl cd zu gehen). Die Berechtigung, ohne ein Verzeichnis zu lesen auf dessen Inhalt zugreifen zu können, gestattet Zugriff auf namentlich bekannte Dateien, nicht jedoch auf solche von denen man nichts weiß oder deren genauen Namen man nicht kennt.
Drei Befehle steuern die einer Datei zugeordneten Berechtigungen:
Es gibt zwei Arten, die Berechtigungen darzustellen. Von ihnen ist die symbolische Darstellung wohl am einfachsten zu verstehen und zu merken. Es geht um die oben erwähnten Buchstabensymbole. Sie können Berechtigungen für jede Kategorie von Benutzern festlegen (u/g/o), indem Sie sie entweder ausdrücklich setzen (mit =), sie hinzufügen (+) oder sie entfernen (-). So gewährt die Formel u=rwx,g+rw,o-r dem Eigentümer Lese-, Schreib- und Ausführungszugriff, fügt Lese- und Schreibzugriff für die Eigentümergruppe hinzu und entfernt den Lesezugriff für andere Benutzer. Rechte, die in einem solchen Befehl nicht durch Hinzufügen oder Entfernen modifiziert werden, bleiben unverändert. Der Buchstabe a, für „all“, deckt alle drei Benutzerkategorien ab, so dass a=rx allen drei Kategorien die gleichen Rechte gewährt (Lesen und Ausführen, aber nicht Schreiben).
Die (oktale) Zahlendarstellung ordnet jeder Berechtigung einen Wert zu: 4 für Lesen, 2 für Schreiben und 1 für Ausführen. Wir verknüpfen jede Kombination von Berechtigungen durch die Summe der Zahlen. Jeder Wert wird dann einer anderen Kategorie von Benutzern zugeordnet, indem sie von vorne nach hinten in der üblichen Reihenfolge (Eigentümer, Gruppe, Sonstige) angeordnet werden.
So vergibt zum Beispiel der Befehl chmod 754 datei die folgenden Berechtigungen: Schreiben, Lesen und Ausführen für den Eigentümer (da 7 = 4 + 2 + 1); Schreiben und Ausführen für die Gruppe (da 5 = 4 + 1); nur Lesen für Sonstige. Die 0 bedeutet keine Berechtigung; so gestattet chmod 600 datei dem Eigentümer Lese-/Schreibzugriff, und keine Berechtigungen für alle anderen. Die häufigsten Berechtigungskombinationen sind 755 für ausführbare Dateien und Verzeichnisse und 644 für Dateien, die Daten enthalten.
Um spezielle Berechtigungen darzustellen, können Sie dieser Zahl eine vierte Ziffer nach dem gleichen Prinzip voranstellen, wobei die setuid-, setgid- und sticky-Bits jeweils 4, 2 und 1 sind. chmod 4754 fügt das setuid-Bit den zuvor beschriebenen Berechtigungen hinzu.
Beachten Sie, dass die oktale Schreibweise es nur erlaubt, alle Berechtigungen für eine Datei gleichzeitig zu setzen; Sie können sie nicht dazu benutzen, einfach eine neue Berechtigung hinzuzufügen, wie den Lesezugriff für die Eigentümergruppe, da Sie die bestehenden Berechtigungen berücksichtigen und den entsprechenden neuen numerischen Wert berechnen müssen.