Chmod

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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

Dateirechte anpassen: gnome-software.png ist eine Grafikdatei, test-1.sh und test-2.sh sind Skripte, die mittels chmod 755 bzw. chmod a+x ausführbar gemacht werden.

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

  • chmod (pubs.opengroup.org, POSIX Standard)
  • umask (wiki.archlinux.org)


Foto Werner Fischer.jpg

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.


Das könnte Sie auch interessieren

Block-basierte Linux Dateisysteme
Linux Dateisysteme
Linux Terminal Sessions mit screen im Single- und Multiuser Modus