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 Befehlchmod -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.