Linux Berechtigungen
In Linux werden die Berechtigungen einer Datei in drei Bereiche eingeteilt: Die Berechtigungen für den Besitzer der Datei, die Berechtigungen für die Gruppe und die Berechtigungen für alle anderen Nutzer. Dabei können für jede Datei individuell die Zugriffsrechte für den Besitzer, die Gruppe und die restlichen Nutzer gesetzt werden, um die Sicherheit des Systems zu gewährleisten und unerlaubten Zugriff auf sensible Daten zu verhindern.
Struktur
Unter Linux können die Dateiberechtigungen mit dem Befehl ls -l
ausgegeben werden.
drwxrwxrwx 3 owner group 4096 Nov 12 13:56 home
Die erste Spalte dieser Ausgabe gibt Auskunft über die gesetzten Rechte. Diese Ausgabe kann in vier Gruppen oder Blöcke aufgeteilt werden:
Der erste Block gibt an, ob es sich bei dem aktuellen Eintrag um eine Datei oder ein Verzeichnis (directory) handelt. Wenn an dieser Stelle der Buchstabe d steht, bedeutet das, dass das aktuelle Entry ein Verzeichnis ist. Sollte es sich um eine Datei handeln, befindet sich ein – an der Stelle.
In den drei nachfolgenden Blöcken werden die Rechte für den Besitzer, die Gruppe und sonstige User festgelegt. Auch hier gilt: Ein Buchstabe erlaubt die Art von Zugriff, ein – verbietet ihn.
Die Buchstaben repräsentieren die jeweilige Funktion:
- w = Schreibzugriff (write)
- r = Lesezugriff (read)
- x = Ausführbar (executable)
Beispiel
Folgende Berechtigung ist für das Entry test gegeben:
-rwxr-x--- michael admin test
Anhand des ersten Eintrages kann man erkennen, ob es sich um eine Datei oder ein Verzeichnis handelt. Das – zeigt an, dass es sich bei dem Entry „test“ um eine Datei handelt. Der folgende Block für den Besitzer (michael) mit dem Inhalt rwx gibt an, dass der Besitzer der Datei, in diesem Fall michael, die Datei lesen (r), bearbeiten (w) und ausführen (x) darf. Danach kommen die Berechtigungen für alle User in der Gruppe admin. Die Mitglieder dieser Gruppe dürfen die Datei lesen (r) und ausführen (x), aber nicht bearbeiten. Schließlich werden die Berechtigungen für alle Nutzer angezeigt, die weder Besitzer sind noch zur Gruppe admin gehören. Dieser Block besteht aus —, was bedeutet, dass sie weder lesen noch schreiben können und auch das Ausführen ist nicht gestattet.
Ändern der Berechtigungen
Die Berechtigung kann mit verschiedenen Tools geändert werden. Im Folgenden verwenden wir den Befehl chmod (change Mode) zum Ändern der Berechtigungen. Nur der Root User oder der Besitzer einer Datei kann deren Berechtigungen ändern.
Der Befehl kann symbolisch oder numerisch verwendet werden. Die Syntax lautet:
chmod [optionen] mode datei
Mit dem Befehl chmod -h
wird die Hilfeseite zum Befehl angezeigt.
Symbolische Nutzung
Die symbolische Nutzung des Befehls ist die einfachere Art, Berechtigungen zu vergeben, besonders wenn man noch nie mit dem Befehl gearbeitet hat oder sich das Umrechnen der Berechtigungen in Oktal nicht zutraut (numerische Nutzung). Für die Vergabe der Berechtigung werden entsprechende Symbole verwendet.
Der MODE setzt sich wie folgt zusammen:
- u = Besitzer
- g = Gruppe
- o = Andere
- a = Auf alle anwenden
Operator (Hinzufügen, Entfernen oder Setzen):
- + = Rechte hinzufügen
- – = Rechte entfernen
- = = Rechte fest setzen
Rechte, welche bearbeitet werden sollen:
- r = Leserechte
- w = Schreibrechte
- x = Ausführrechte
Durch die Kombination der Schritte 1 + 2 + 3 ergibt sich der MODE. Nachfolgend einige Beispiele:
chmod g+w datei
Hinzufügen der Schreibberechtigung für die Gruppe.
chmod o-r datei
Entfernen der Leseberechtigung für sonstige User.
chmod a+x datei
Die Datei für alle Nutzer ausführbar machen. Hinweis: Wenn kein Block angegeben wird, werden die Berechtigungen auf alle Blöcke angewendet. Der Befehl chmod +x datei
hat dieselbe Funktion wie der Befehl chmod a+x datei
.
chmod g=rw datei
Die Gruppe darf die Datei lesen und schreiben, allerdings nicht ausführen.
Numerische Nutzung
Für die numerische Nutzung muss die gewünschte Berechtigung in eine Oktalzahl umgerechnet werden. Hierzu nutzt man die oben genannte Technik, wobei ein Buchstabe eine 1 und ein – eine 0 bedeutet:
Die drei 3-Bit-Binärwerte werden in Dezimalwerte umgewandelt:
Daraus ergibt sich die Zahl 764, welche der Berechtigung rwxrw-r– entspricht. Weitere Beispiele:
chmod 660 datei
Besitzer und Gruppe können lesen und schreiben; andere Nutzer haben keine Berechtigungen.
chmod 755 datei
Besitzer kann lesen, schreiben und ausführen; die Gruppe und andere Nutzer haben nur lesende Berechtigungen.
chmod 777 datei
Alle Nutzer können die Datei lesen, schreiben und ausführen.
Achtung!
Obwohl der Mode 777 viele Rechteprobleme löst und daher oft verwendet wird, ist er für Produktivsysteme nicht zu empfehlen und stellt ein erhebliches Sicherheitsrisiko dar.