Linux ordnet jeder Datei und jedem Verzeichnis bestimmte Zugriffsrechte zu. Darunter versteht man, wer alles eine Datei lesen, schreiben und ausführen darf. Mit dem Terminal-Befehl „chmod“ lassen sich die Zugriffsrechte von Dateien und Verzeichnissen unter Linux ändern. Wie das geht, zeigen wir euch hier auf GIGA.
Linux: Was sind Zugriffsrechte? (rwx)
Die derzeitigen Zugriffsrechte einer Datei seht ihr mit dem Terminal-Befehl:
ls -l
Dateien (und Verzeichnisse) können in Linux „lesbar“, „schreibbar“ und „ausführbar“ sein (Readable = r, Writable = w, Executable = x).
Kürzel | Zugriff | Erklärung |
r | lesbar | Die Datei lässt sich öffnen/anschauen, aber nicht ändern. |
w | schreibbar | Die Datei lässt sich ändern und wieder speichern. |
x | ausführbar | Die Datei lässt sich als Programm ausführen (ähnlich wie EXE-Dateien unter Windows). |
Besonderheit bei Verzeichnissen: Verzeichnisse lassen sich nur öffnen, wenn sie als ausführbar (x) deklariert sind.
Diese Zugriffsrechte merkt sich Linux pro Datei für die drei Kategorien: „Besitzer“, „Gruppe“ und „Andere“.
Kategorie | Erklärung |
Besitzer | Lese-, Schreib- und Ausführen-Berechtigungen für den Benutzer, dem die Datei gehört. |
Gruppe | Lese-, Schreib- und Ausführen-Berechtigungen für die Mitglieder einer Gruppe, denen die Datei gehört. (Eine Gruppe ist eine Sammlung bestimmter Benutzern unter Linux. Mitglieder einer Gruppe können gemeinsam Zugriff auf eine Datei haben.) |
Andere | Lese-, Schreib- und Ausführen-Berechtigungen für alle anderen Benutzer, die Zugriff auf das Linux-System haben. |
Mit dem chmod-Befehl könnt ihr die Zugriffsrechte einer Datei also für deren „Besitzer“, deren „Gruppe“ und deren „Andere“ jeweils einzeln bestimmen. Die Information, welche Berechtigungen eine Datei hat oder erhalten soll, lässt sich sehr einfach mit folgenden Zahlen darstellen:
Addiert einfach die Zahlen innerhalb einer Kategorie, um auf die gewünschte Zahl zu kommen. Diese lassen sich dann aneinandergereiht mit dem chmod-Befehl nutzen, um Zugriffsberechtigungen pro Datei mit einem einzigen Befehl korrekt festzulegen.
Beispiel:
- Die Datei soll für den Besitzer lesbar, schreibbar und ausführbar sein (4 + 2 + 1 = 7).
- Die Datei soll für die Gruppe nur lesbar und schreibbar sein (4 + 2 = 6).
- Die Datei soll für alle anderen Benutzer weder lesbar, noch schreibbar noch ausführbar sein (0 + 0 + 0 = 0).
Zugehöriger Befehl:
sudo chmod 760 Testdatei.txt
Linux-Zugriffsrechte ändern mit „chmod“
Um Zugriffsrechte (auch: „Dateiattribute“) von Dateien und Ordnern unter Linux per chmod-Befehl (Abkürzung für: „Change Mode“) ändern zu können, müsst ihr der Besitzer der Datei sein oder über Root-Rechte verfügen.
Zugriffsrechte anzeigen
Der Terminal-Befehl
ls -l
zeigt Dateien und Verzeichnisse mit ihren Zugriffsberechtigungen an.
Datei ausführbar machen (chmod +x)
Standardmäßig erlaubt es Linux nicht, Skripte oder Dateien als Programm auszuführen. Mit dem Terminal-Befehl „chmod“ kann man das Ausführen der Datei „Testdatei.sh“als Programm wie folgt erlauben.
chmod +x Testdatei.sh
Falls das nicht funktioniert, sind vermutlich Root-Rechte nötig:
sudo chmod +x Testdatei.sh
Berechtigung „Datei ausführen“ entziehen (chmod -x)
chmod -x Testdatei.sh
sudo chmod -x Testdatei.sh
Gezielt Berechtigung setzen (chmod 755 …)
Lest die Tabelle spaltenweise von oben nach unten, um die zugehörige Zahl für die jeweiligen Zugriffsrechte auszurechnen:
Besitzer | Gruppe | Andere | ||||||
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
= 7 (Alle) | = 7 (Alle) | = 7 (Alle) |
Beispiel:
- Besitzer: r + w + x (4 + 2 + 1 = 7)
- Gruppe: x (= 1)
- Andere r (= 4)
Zugehöriger Befehl:
sudo chmod 714 Testdatei.txt
Für alle Windows-Nutzer, die einen Linus-Server gemietet haben oder nutzen: In zugehörigen FTP-Programmen könnt ihr die Zugriffsberechtigungen auf eure Dateien und Ordner in der Regel einstellen.
Besitzer einer Datei ändern
Der Linux-Benutzer „hans“ soll der Besitzer der Datei „Testdatei.txt“ sein:
sudo chown hans Testdatei.txt