Grundlagen

**This is an old revision of the document!**

Linux verwaltet die Dateien in einem virtuellen Dateisystem (VFS, Virtual File System). Hier wird jeder Datei über eindeutige Inodes (Nummern) Eigenschaften zugeordnet:

  • Dateityp (Datei, Ordner, Link)
  • Zugriffsrechte für Eigentümer, Gruppe, Others
  • Größe
  • Zeitstempel
  • Verweis auf Dateiinhalt


Rechte

Zugriffsrechte regeln, welcher Benutzer und welche Gruppe den Inhalt eins Verzeichnisses oder einer Datei lesen, verändern oder ausführen darf.

Diese Rechte können verändert werden, wenn man dafür die entsprechenden Rechte am Ordner bzw. der Datei verfügt. Der Root darf alles.

Rechte lassen sich bezüglich 3 Arten des Zugriffs einstellen:

1. r - lesen
2. w - schreiben
3. x - ausführen


Symbolische Darstellung von Rechten

Lässt man sich mit ls den Inhalt eines Ordners ausgeben, erhält man beispielsweise folgende Zeile:

drwxrwxr-x  2  anna  staff  4.0K  Apr 23  2020  /home/anna/spielplan.txt 
In dieser einen Zeile sind viele Informationen verborgen. Hier einmal die einzelnen Bestandteile auseinandergerissen:

   Ordner   Besitzer   Gruppe   Welt   Links zu Datei   Eigentümer   Gruppe   Größe   Zeitstempel          Pfad/Name
  -------- ---------- -------- ------ ---------------- ------------ -------- ------- ------------- --------------------------
     d        rwx       rwx     r-x          2             anna      staff    4.0K    Apr 23 2020   /home/anna/spielplan.txt


Dateizugriffsrechte auf Datei- und Ordnerebene

Obwohl Dateirechte sowohl für Dateien als auch Ordner gelten, gibt es kleine aber feine Unterscheidungen, die beachtet werden müssen. So ist es hoffentlich klar, dass das x-Recht für Dateien etwas anderes bedeuten muss, als für einen Ordner - einen Ordner kann man schließlich nicht “ausführen”.

Recht Datei Verzeichnis
r Datei kann gelesen werden. Verzeichnisinhalt kann mit ls angezeigt werden.
w Datei kann bearbeitet werden. Dateien können hinzugefügt, gelöscht oder umbenannt werden.
x Datei kann als Programm ausgeführt werden. Verzeichnis kann betreten werden (z. B. mit cd), und der Zugriff auf Dateien ist möglich (sofern erlaubt).

Die Rechte werden häufig kombiniert. Hier sind typische Szenarien:

Dateien:

  1. r - -: Datei kann nur gelesen werden.
  2. r w -: Datei kann gelesen und geschrieben werden, also: geändert.
  3. r w x: Datei kann gelesen, geschrieben und ausgeführt werden.

Verzeichnisse:

  1. r - -: Man sieht die Datei- oder Verzeichnisnamen, aber keinen Zugriff auf Inhalte.
  2. r - x: Man kann Verzeichnisinhalte sehen und betreten, aber keine Änderungen vornehmen.
  3. r w x: Man kann Inhalte auflisten, bearbeiten, hinzufügen und löschen.

Oktale Darstellung

Die Buchstaben der symbolischen Darstellung sowie die Kombinationen aus ihnen werden durch einzelne Ziffern repräsentiert. Dabei steht je 1 Ziffer für genau eine Kombinaton von einem oder mehreren Rechten.

Mögliche Werte für Kombinationen von Rechten

Rechte oktal symbolisch binär
Lesen, schreiben und ausführen 7 r w x 111
Lesen und Schreiben 6 r w - 110
Lesen und Ausführen 5 r - x 101
Nur lesen 4 r - - 100
Schreiben und Ausführen 3 - w x 011
Nur Schreiben 2 - w - 010
Nur Ausführen 1 - - x 001
Keine Rechte 0 - - - 000

Aus https://wiki.ubuntuusers.de/Rechte/

Diese Kombinationen werden 3 mal angegeben für Benutzer, Gruppe, Others. Daraus folgt ein 3 stellige Kombination von Zahlen. Diese können eingesetzt werden, wenn man die Dateirechte ändern will. Hierzu benutzt man den Befehl chmod


Dateirechte ändern mit chmod

Ausgangspunkt

rwxr-xr-x 4 wed wed 4.0K Feb 23 14:53 hallo.txt
Änderung 1

Ich will nur noch den Besitzer “wed” lesen und schreiben lassen. Alle anderen dürfen nichts.

chmod 600 hallo.txt
-rw------- 1 wed wed 17 Feb 23 13:37 hallo.txt
Die Kombination hierfür lautet 600 bzw -rw. (6- lesen und schreiben, 0-nichts, 0-nichts)

Änderung 2

Rechte ändern auf lesen, schreiben, ausführen für Eigentümer und Gruppe. Alle anderen sollen wenigstens lesen können:

chmod 774 hallo.txt
-rwxrwxr-- 1 wed wed 17 Feb 23 13:37 hallo.txt


Symbolische Methode zur Festlegung von Dateirechten in Linux

In Linux können Dateirechte auch symbolisch mit dem Befehl chmod festgelegt werden.

Die symbolische Methode verwendet Abkürzungen, um die Berechtigungen für verschiedene Benutzerklassen zu ändern.

Diese Methode ist besonders nützlich, wenn Sie Berechtigungen relativ zu den aktuellen Einstellungen ändern möchten.

Benutzerklassen und Abkürzungen:

  • Benutzerklassen:
    • u für den Besitzer (user)
    • g für die Gruppe (group)
    • o für andere (others)
    • a für alle (all, d.h. Benutzer, Gruppe und andere)
  • Operatoren:
    • + um Berechtigungen hinzuzufügen
    • - um Berechtigungen zu entfernen
    • = um Berechtigungen explizit zu setzen
  • Berechtigungen:
    • r für Leseberechtigung (read)
    • w für Schreibberechtigung (write)
    • x für Ausführungsberechtigung (execute)

Beispiele:

Hinzufügen von Lese- und Schreibberechtigungen für den Besitzer und die Gruppe:

chmod ug+rw dateiname
Entfernen der Ausführungsberechtigung für andere:

chmod o-x dateiname
Setzen der Leseberechtigung für alle:

chmod a=r dateiname
Hinzufügen von Lese- und Ausführungsberechtigungen für die Gruppe:

chmod g+rx dateiname


Änderung von Eigentümer-User bzw. Eigentümer-Gruppe von Dateien chown - change owner

Besitzer oder Gruppe können mit uid/ gid oder Namen angegeben werden

chown alice:entwickler dokument.txt

Kombinationsmöglichkeiten von Besitzer und Gruppe

Kombination Bedeutung
besitzer_name:gruppen_name Benutzer und Gruppe werden auf einen Schlag gesetzt
:gruppen_name Die Gruppe wird gesetzt, wohingegen der Besitzer unverändert bleibt
besitzer_name: Der Besitzer wird auf besitzer_name - und die Gruppe auf die Standardgruppe des eingeloggten Benutzers gesetzt
besitzer_name Ausschließlich der Besitzer wird gesetzt

Aus https://wiki.ubuntuusers.de/chown/