Chmod
chmod (change file mode bits) ändert die Zugriffsrechte von Dateien und Ordnern auf POSIX-konformen Systemen wie Linux.
Rechtegruppen
Zugriffsrechte werden separat gespeichert für:
- u - (u)ser (Rechte für den Benutzer, dem die Datei oder das Verzeichnis gehört)
- g - (g)roup (Rechte für Mitglieder der Gruppe, der die Datei oder das Verzeichnis zugeordnet ist)
- o - (o)ther (Rechte für alle anderen)
Wenn für alle Rechtegruppen die Rechte geändert werden sollen, kann die Abkürzung "a" verwendet werden:
- a - (a)ll = ugo (user + group + other)
Dateirechte
Dateirechte beschreiben, was ein Benutzer mit einer Datei machen darf.
r - (r)ead
Leserecht. Wenn dieses Recht vorhanden ist, darf der Benutzer die Datei lesen.
w - (w)rite
Schreibrecht. Wenn dieses Recht vorhanden ist, darf der Benutzer die Datei beschreiben.
x - e(x)ecute
Ausführungsrecht. Wenn dieses Recht vorhanden ist, darf der Benutzer die Datei ausführen (Programme, Skripte).
Oktalwerte
Die drei Dateirechte (read, write, execute) werden als drei aufeinanderfolgende Bits gespeichert, die häufig in einem Oktalwert (0 bis 7) dargestellt werden.
Dabei gilt:
- erstes Bit: read (Binär 100, Oktal 4)
- zweites Bit: write (Binär 010, Oktal 2)
- drittes Bit: execute (Binär 001, Oktal 1)
Werden mehrere Rechte kombiniert (z.B. read und write) ergeben sich folgende Summen-Oktalwerte:
Oktal | Binär | Bedeutung |
---|---|---|
0 | 000 | keine Rechte |
1 | 001 | nur ausführen (execute, x) |
2 | 010 | nur schreiben (write, w) |
3 | 011 | schreiben (write, w) und ausführen (execute, x) |
4 | 100 | nur lesen (read, r) |
5 | 101 | lesen (read, r) und ausführen (execute, x) |
6 | 110 | lesen (read, r) und schreiben (write, w) |
7 | 111 | lesen (read, r), schreiben (write, w) und ausführen (execute, x) |
Beispiele
Die folgenden beiden Beispiele zeigen eine Textdatei sowie eine ausführbare Datei:
Beispiel | Special Permissions | User (u) | Group (g) | Other (o) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SUID
user+s(pecial) |
SGID
group+s(special) |
sticky
other+t(sticky) |
Read (r)
(Lesen) |
Write (w)
(Schreiben) |
eXecute (x)
(Ausführen) |
Read (r)
(Lesen) |
Write (w)
(Schreiben) |
eXecute (x)
(Ausführen) |
Read (r)
(Lesen) |
Write (w)
(Schreiben) |
eXecute (x)
(Ausführen) | ||
Textdatei | Binär | 000 | 000 | 000 | 100 | 010 | 000 | 100 | 000 | 000 | 100 | 000 | 000 |
Oktal | 0 | 0 | 0 | 4 | 2 | 0 | 4 | 0 | 0 | 4 | 0 | 0 | |
Summe (oktal) | 0 | 0 | 0 | 6 | 4 | 4 | |||||||
Oktale Schreibweise für chmod | 0644 (= 644) | ||||||||||||
Anzeige in ls Ausgabe | -
|
r
|
w
|
-
|
r
|
-
|
-
|
r
|
-
|
-
| |||
-rw-r--r--
| |||||||||||||
werner@x390:~/Documents$ ls -l gnome-software.png -rw-r--r-- 1 werner werner 41305 Okt 9 2023 gnome-software.png | |||||||||||||
Skript (ausführbar) | Binär | 000 | 000 | 000 | 100 | 010 | 001 | 100 | 000 | 001 | 100 | 000 | 001 |
Oktal | 0 | 0 | 0 | 4 | 2 | 1 | 4 | 0 | 1 | 4 | 0 | 1 | |
Summe (oktal) | 0 | 0 | 0 | 7 | 5 | 5 | |||||||
Oktale Schreibweise für chmod | 0755 (= 755) | ||||||||||||
Anzeige in ls Ausgabe | -
|
r
|
w
|
x
|
r
|
-
|
x
|
r
|
-
|
x
| |||
-rwxr-xr-x
| |||||||||||||
werner@x390:~$ ls -l bin/test-1.sh -rwxr-xr-x 1 werner werner 39 Apr 22 11:35 bin/test-1.sh |
Verzeichnisrechte
Verzeichnisrechte unterscheiden sich von den Dateirechten vor allem im folgenden Punkt:
- Die Ausführungsrechte beziehen sich darauf, ob ein Verzeichnis betreten werden darf.
Spezialbits SETUID, SETGID, Sticky Bit
Die folgende Tabelle zeigt die Bedeutung von SETUID, SETGID und Sticky Bit:
SETUID | SETGID | Sticky Bit / Restricted Deletion Flag | |
---|---|---|---|
Oktalwert | 4000 | 2000 | 1000 |
Darstellung im symbolischen Modus | "s" anstelle von "x" bei den User (u) Rechten | "s" anstelle von "x" bei den Group (g) Rechten | "t" anstelle von "x" bei den Other (o) Rechten |
Bedeutung für Dateien | Bei ausführbaren Dateien gewährt es dem ausführenden Prozess, Rechte des Users der Datei zu nutzen. | Bei ausführbaren Dateien gewährt es dem ausführenden Prozess, Rechte der Gruppe der Datei zu nutzen. | - (Keine Funktion unter Linux) |
Bedeutung für Verzeichnisse | - (Keine Funktion unter Linux) | Jede neu in diesem Verzeichnis erstellte Datei oder neues Unterverzeichnis erbt die Gruppe des Verzeichnisses. | Bei Verzeichnissen verhindert es, dass unprivilegierte Benutzer eine Datei in dem Verzeichnis löschen oder umbenennen können, es sei denn, sie sind Eigentümer der Datei oder des Verzeichnisses. Dies wird als "Restricted Deletion Flag" für das Verzeichnis bezeichnet und ist häufig bei Verzeichnissen wie /tmp zu finden, die von jedem Benutzer beschrieben werden können. |
chmod - Rechte ändern
Mit chmod können die Dateirechte angepasst werden. Dabei bestehen zwei Möglichkeiten:
- SYMBOLIC MODE: Format [ugoa][-+=][rwx]
- NUMERIC/OCTAL MODE: Format 1-4 digits von 0-7
Weitere Informationen
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|