- chmod
-
chmod (von englisch: change mode) ist ein Kommandozeilenprogramm unter Unix, mit dem sich die klassischen Unix-Dateirechte verändern lassen. Das
chmod
-Kommando gibt es bereits seit der ersten Version des AT&T-Unix (Anfang 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 MyFile
Erklärung: setzt die Rechte der Datei "MyFile" 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.
Verwandte Themen
Weblinks
chmod(1)
– Linux-Manpage (Englisch)- POSIX-Spezifikation (englisch)
- chmod-Syntax (deutsch)
- Erklärung auf Ubuntuusers.de (deutsch)
Kategorien:- Unix-Software
- GNU core utilities
Wikimedia Foundation.