- Chmod
-
chmod (von englisch: change mode) ist ein Kommandozeilenprogramm unter Unix, mit dem sich die klassischen Unix-Dateiattribute (Zugriffsrechte) verändern lassen. Das
chmod
-Kommando gibt es bereits seit der ersten Version des AT&T-Unix (Ende der 1970er Jahre).Die Attributsänderungen lassen sich nur von dem Besitzer der Datei oder dem root-Benutzer durchführen.
Inhaltsverzeichnis
Benutzung
Das Programm wird in der Unix-Shell wie folgt benutzt:
$ chmod [options] mode file1 ...
Es sind zunächst Optionen möglich; options kann dabei
-v
für ausführliche Ausgaben (verbose) und-R
für rekursives Durchgehen aller Unterverzeichnisse sein.mode steht für den für die Datei oder Dateien anzuwendende Rechtemaske. Diese kann in einer numerischen Notation oder einer symbolischen Notation geschehen.
Symbolische Notation
chmod
ermöglicht eine Kurzschreibweise, um Dateirechte einfach zu kombinieren. Dabei steht u für den Eigentümer (user), g für die Gruppe (group) und o für alle anderen Benutzer (other). Schließlich gibt es noch a, welches alle drei Benutzergruppen umschließt (all). Um zum Beispiel allen möglichen Benutzern die Ausführrechte einer Datei zu geben, reicht einchmod a+x dateiname
.Diese Benutzerklassen werden mit drei möglichen Operatoren mit den Dateirechten verknüpft:
+
fügt die entsprechenden Dateirechte den entsprechenden Benutzerklassen hinzu (überschreibt nur die betroffenen Rechte)-
entzieht den entsprechenden Benutzerklassen die entsprechenden (und betroffenen) Dateirechte=
setzt für die Benutzerklassen die entsprechenden Dateirechte neu, ungeachtet ihrer vorherigen Rechte am Objekt (override).
Anschließend werden die entsprechenden Dateirechte angegeben. Dies sind
r
,w
,x
,s
undt
entsprechend der klassischen symbolischen Notation. Zusätzlich gibt es noch das spezielle ZeichenX
(special execute). Dabei handelt es sich nicht um ein Dateirecht, sondern um einen Ersatz fürx
, welches bei Verzeichnissen das Ausführ-Recht setzt (ungeachtet, ob sie es vorher gesetzt hatten) und nur bei den Dateien ein Ausführ-Recht setzt, die bereits ein Ausführ-Recht bei mindestens einer Benutzerklasse gesetzt haben. Es ist daher nur dann sinnvoll, wenn es mit+
und der-R
-Option genutzt wird, um den entsprechenden Benutzerklassen Zugriff zu einem Verzeichnisbaum zu geben, ohne normalen Dateien (keinen Programmen) das Ausführ-Bit zu setzen, was normalerweise beim Aufruf vonchmod -R a+rx
passieren würde. MitX
hingegen kann manchmod -R a+rX
benutzen.Beispiel
$ chmod u=rw,g-rx,o+r /datei
Erklärung: setzt die Rechte von /datei des Besitzers (der Datei) auf Lesen (r) und Schreiben (w), löscht dabei das Ausführrecht, weil nicht gesetzt, entzieht der Gruppe das Recht auf Lesen (r) und Ausführen (x), berührt aber nicht das Schreibrecht, und fügt für alle anderen das Recht auf Lesen (r) hinzu (falls noch nicht vorhanden).
Grafische Alternativen
In vielen grafischen Dateimanagern und FTP-Clients, zum Beispiel Konqueror/KDE, Nautilus/GNOME, lassen sich die Dateirechte grafisch bearbeiten. Dabei entfällt das Hantieren mit der Syntax von
chmod
.Siehe auch
Weblinks
chmod(1)
– Linux-Manpage (Englisch)- POSIX-Spezifikation (englisch)
- chmod-Syntax (deutsch)
Wikimedia Foundation.