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.