Unix-Dateirechte
Unter Linux haben (wie bei allen UNIX-ähnlichen Systemen) immer nur bestimmte Benutzer das Zugriffsrecht auf eine Datei oder ein Verzeichnis.
Bei Dateien bedeutet ›Zugriff‹:
• r - eine Datei zu lesen (read)
• w - sie zu verändern oder zu löschen (write)
• x - sie als Programm auszuführen (execute)
Bei Verzeichnissen bedeutet ›Zugriff‹:
• r - Dateien in einem Verzeichnis anzeigen zu lassen
• w - in einem Verzeichnis Dateien oder Unterverzeichnisse anzulegen oder zu löschen
• x - Dateien und Unterverzeichnisse in einem Verzeichnis zu öffnen (sofern diese selbst Zugriffsrechte gewähren)
Für jede Datei/jedes Verzeichnis gibt es immer einen Besitzer (der Benutzer, der die Datei/das Verzeichnis angelegt hat, auch Eigentümer genannt) und eine Gruppe, die ebenfalls Zugriffrechte besitzt. Weiterhin können Zugriffsrechte für alle anderen Benutzer (Welt) gesetzt werden. Zugriffsrechte können nur vom Root oder vom Besitzer einer Datei/eines Verzeichnisses geändert werden.
Root: Der System-Administrator oder Super-User. Er hat automatisch alle Rechte für das gesamte Dateisystem.
Besitzer: Der Benutzer, der einen Ordner oder eine Datei erstellt hat, ist dessen Besitzer.
Gruppe: Mehrere Benutzer können einer Gruppe angehören, wodurch sie die Rechte der Gruppe erlangen.
Andere: Alle Benutzer, die weder der Besitzer eines Ordners oder einer Datei sind, noch der Gruppe angehören, für die die Zugriffsrechte eines Ordners oder einer Datei definiert wurden.
Den Rechtestatus einer Datei/eines Verzeichnisses kann man sich über das Terminal anzeigen lassen:
Beispiel:
ls -l Schreibtisch/test.log
ls -ld Schreibtisch/test
(Option -d (directory) bei Verzeichnissen)
Die Ausgabe sieht beispielsweise so aus:
-rw-rw-r-- 1 besitzer gruppe 0 2022-05-02 11:04 Schreibtisch/test.log
oder
drwxrwxr-x 2 besitzer gruppe 4096 2022-05-02 21:32 Schreibtisch/test
Die Zeichenfolge -rw-r--r-- gibt den Rechtestatus an:
Das erste Zeichen steht für die Art der Datei:
- Datei
d Verzeichnis
l symbolische Verknüpfung (Symlink)
Danach folgen drei Gruppen à drei Zeichen jeweils für den Besitzer, die Gruppe und für alle anderen Benutzer (Welt).
r (erstes Zeichen) Lesen
w (zweites Zeichen) Schreiben
x (drittes Zeichen) Ausführen
- kein Zugriff
Die Zeichenfolge -rw-r--r-- liest sich also so:
Auf die Datei (-) hat der Besitzer besitzer Lese- und Schreibzugriff (rw-), während die Gruppe gruppe und alle anderen Benutzer lediglich Lesezugriff haben (r--).
Danach folgt der Name des Besitzers (hier: besitzer) sowie der Name der Gruppe (hier: gruppe). Dann folgt die Dateigröße in Bytes (0), das Datum und die Uhrzeit der letzten Änderung mtime (2022-05-02 11:04) sowie der Dateiname (Schreibtisch/test.log).
Besitzer ändern (chown)
Um den Benutzer einer Datei/eines Verzeichnisses zu ändern, wird der Befehl chown (change owner) verwendet. Dies setzt natürlich voraus, dass der neue Benutzer auch existiert.
Ebenso kann mit diesem Befehl gleichzeitig oder ausschließlich die Gruppenzugehörigkeit geändert werden (ähnlich dem Befehl chgrp).
Beispiele:
1) sudo chown NEUERBESITZER Schreibtisch/test.log
2) sudo chown NEUERBESITZER. Schreibtisch/test.log
3) sudo chown NEUERBESITZER.NEUEGRUPPE Schreibtisch/test.log
4) chown .NEUEGRUPPE Schreibtisch/test.log
(Die Platzhalter NEUERBESITZER und NEUEGRUPPE sind gegen reale Namen auszutauschen!)
Erläuterung:
1) ändert nur den Besitzer (Rootrechte erforderlich)
2) ändert den Besitzer und die Gruppe nach der Gruppe des Besitzers (Rootrechte erforderlich)
3) ändert den Besitzer und die Gruppe (Rootrechte erforderlich)
4) ändert nur die Gruppe
Gruppenzugehörigkeit ändern (chgrp)
Um die Gruppenzugehörigkeit einer Datei/eines Verzeichnisses zu ändern, wird der Befehl chgrp (change group) verwendet.
Beispiel:
chgrp NEUEGRUPPE Schreibtisch/test.log
Zugriffsrechte ändern (chmod)
Um die Zugriffsrechte einer Datei/eines Verzeichnisses zu ändern, wird der Befehl chmod (change mode) verwendet.
Beispiel:
chmod 664 Schreibtisch/test.log
Die Zeichenfolge 664 besteht aus drei Oktalzahlen, die jeweils die Summe der Werte für Lesen (r = 4), Schreiben (w = 2) und Ausführen (x = 1) ausdrücken. Die erste Zahl steht für den Besitzer, die zweite für die Gruppe, und die dritte für Welt. Eine 6 steht hier also für Lese- und Schreibzugriff (4+2), während die 4 lediglich für den Lesezugriff steht. Die Zahlenfolge 664 steht also für die Zeichenkette rw-rw-r--. Folgende Kombinationen sind denkbar (wenn auch nicht immer nützlich):
0: --- (0+0+0) kein Zugriff
1: --x (0+0+1) nur Ausführen
2: -w- (0+2+0) nur Schreiben
3: -wx (0+2+1) Schreiben und Ausführen
4: r-- (4+0+0) nur Lesen
5: r-x (4+0+1) Lesen und Ausführen
6: rw- (4+2+0) Lesen und Schreiben
7: rwx (4+2+1) Lesen, Schreiben und Ausführen
Um die Zugriffsrechte aller Dateien eines Ordners gleichzeitig zu ändern, verwendet man den Befehl chmod in Verbindung mit der Option -R (recursive).
Beispiel:
chmod 664 -R Schreibtisch/test
Rechte selektiv ändern
In vielen Situationen ist es einfacher und oft auch intuitiver, einzelne Rechte selektiv zu ändern. Dazu ist es nicht notwendig, die aktuellen Rechte der Datei zu kennen. In dem entsprechenden Befehl wird lediglich angegeben, für welche Benutzer welche Rechte geändert werden sollen. Alle übrigen Rechte bleiben unangetastet.
Beispiel:
chmod go-wx test.sh
Bei diesem Befehl werden den Benutzern Gruppe und Andere der Datei test.sh die Rechte zum Schreiben und Ausführen entzogen.
Benutzer:
u - Eigentümer (user)
g - Gruppe (group)
o - Andere (others)
a - Eigentümer + Gruppe + Andere (all)
Änderung:
+ - Rechte erteilen
- - Rechte entziehen
Rechte:
r - lesen (read)
w - schreiben (write)
x - ausführen (execute)
Rechteverwaltung über Dateimanager
Die Rechteverwaltung für Dateien und Ordner kann man auch über den Dateimanager Nemo vornehmen. Dazu klickt man mit Rechts auf die entsprechende Datei oder das Verzeichnis und wählt im Kontextmenü die Option ›Eigenschaften‹ und dort den Reiter ›Zugriffsrechte‹. Je nach Objekt (Datei oder Ordner) öffnet sich ein entsprechender Dialog.
• Rechte von Dateien verwalten
Hier können die Einstellungen für Besitzer und Gruppe geändert werden. Neben dem Schlüsselwort Zugriff können für jeden Benutzer drei Optionen aus der Dropdown-Liste gewählt werden:
--- Keiner
r-- Nur lesen
rw- Lesen und schreiben
Änderungen werden hier sofort nach der Auswahl wirksam.
Die Markierung der Option Datei als Programm ausführen bewirkt sofort die Ausführbarkeit einer Datei für alle Benutzer (Besitzer, Gruppe, Andere), vorausgesetzt, es handelt sich auch um eine grundsätzlich als Programm ausführbare Datei. Damit wird für jeden Benutzer das x in der Zeichenkette gesetzt.
• Rechte von Ordnern verwalten
Hier können die Einstellungen für Besitzer und Gruppe geändert werden. Neben dem Schlüsselwort Ordnerzugriff können für jeden Benutzer vier Optionen aus der Dropdown-Liste gewählt werden:
--- Keiner
r-- Dateien nur auflisten
r-x Auf Dateien zugreifen
rwx Dateien erstellen und löschen
Änderungen werden hier sofort nach der Auswahl wirksam.
Neben dem Schlüsselwort Dateizugriff können für jeden Benutzer drei Optionen aus der Dropdown-Liste gewählt werden:
--- Keiner
r-- Nur lesen
rw- Lesen und schreiben
Änderungen werden hier erst nach Betätigung der Schaltfläche Zugriffsrechte auf enthaltene Dateien übertragen. wirksam.
Die Markierung der Option Datei als Programm ausführen bewirkt nach Betätigung der Schaltfläche Zugriffsrechte auf enthaltene Dateien übertragen. die Ausführbarkeit aller Dateien im aktuellen Ordner für alle Benutzer (Besitzer, Gruppe, Andere), vorausgesetzt, es handelt sich auch um grundsätzlich als Programm ausführbare Dateien. Damit wird für jeden Benutzer das x in der Zeichenkette gesetzt.