Die hier gezeigten Kommandos verändern entweder den Besitzer bzw. die Gruppe einer Datei oder ihre Berechtigungen. Mehr über Berechtigungen finden Sie in Kapitel ,,Grundlegende Unix Konzepte``.
Die Syntax von chown (CHange OWNer, engl. für ,,Ändere Benutzer``):
chown [Optionen] Benutzer[.Gruppe] <Datei|Verzeichnis> [<Datei|Verzeichnis> ...] |
Mögliche Optionen:
-R: Rekursiv. Wechselt den Besitzer aller Dateien und Unterverzeichnisse eines Verzeichnisses.
-v: Ausführlicher Modus. Berichtet welche Dateien geändert wurden und welche nicht.
-c: Wie -v, berichtet jedoch lediglich veränderte Dateien.
Einige Beispiele:
chown nobody /shared/book.tex: Ändert den Besitzer der Datei /shared/book.tex zu nobody.
chown -Rc john.music *.mid concerts/: Weist alle Dateien im aktuellen Verzeichnis mit der Endung .mid sowie alle Dateien und Unterverzeichnisse des Verzeichnisses concerts/ dem Benutzer john und der Gruppe music zu. Berichtet werden nur veränderte Dateien.
chgrp (CHange GRouP, engl. für ,,Ändere Gruppe``) ändert die Gruppenzugehörigkeit einer Datei. Seine Syntax ähnelt der von chown:
chgrp [Optionen] Gruppe <Datei|Verzeichnis> [<Datei|Verzeichnis> ...] |
Die Optionen für dieses Kommando sind die selben wie für chown und es wird sehr ähnlich benutzt:
chgrp disk /dev/hd |
weist der Gruppe disk alle Dateien im Verzeichnis /dev/ zu, deren Namen mit hd beginnt.
chmod (CHange MODe, engl. für ,,Ändere Modus``) hat eine recht eigenwillige Syntax:
chmod [Optionen] Modus <Datei|Verzeichnis> [<Datei|Verzeichnis> ...] |
Der Moduswechsel kann auf zwei Arten vollzogen werden:
Als Oktalzahl. Die Berechtigungen erscheinen als Block von vier Ziffern. Die Stelle innerhalb des Blocks bestimmt, wem das Recht zukommt, der Wert dieser Stelle, welche Rechte vergeben werden. Die erste Ziffer interessiert erst einmal nicht. Die Berechtigungen des Besitzers entsprechen der zweiten Ziffer (also 0x00. ,,x`` kann folgende Werte annehmen: 4 für Schreibberechtigung, 2 für Leseberechtigung und 1 für die Berechtigung, auszuführen. Diese Werte können addiert werden: 6 wäre beispielsweise Lese- und Schreibberechtigung.
Der Gruppenwert ist die dritte Ziffer (also 00x0. ,,x`` kann die selben Werte annehmen wie für den Besitzer. Die letzte Ziffer schließlich (000x) bezeichnet die Rechte, die alle anderen an dieser Datei haben.
Beispiel: eine Datei, die alle lesen und schreiben dürfen, hätte die Zahl 0666 (4+2 für Benutzer, Gruppe und Andere).
Mittels Operatoren. Berechtigungen werden in der Form
[Kategorie]<+|-><Berechtigungen>
angegeben. Dabei ist die Kategorie eine oder mehrere der folgenden:
u (User, engl. für ,,Benutzer``, Rechte für Benutzer),
g (Group, engl. für ,,Gruppe``, Rechte für Gruppe),
o (Others engl. für ,,Andere``, Rechte für alle Anderen).
Ist keine Kategorie angegeben, betrifft die Änderung alle Kategorien. Ein + setzt eine Berechtigung, ein - nimmt sie. Die Berechtigung selbst schließlich ist eine oder mehrere der folgenden:
r (Read, engl. für ,,Lesen``),
w (Write, engl. für ,,Schreiben``),
x (eXecute engl. für ,,Ausführen``).
Die wichtigsten Optionen entsprechen ungefähr denen von chown oder chgrp:
-R: Ändere Berechtigungen rekursiv.
-v: Ausführlicher Modus. Berichtet jede verarbeitete Datei.
-c: Wie -v, berichtet jedoch bloß veränderte Dateien.
Beispiele:
chmod -R o-w /shared/docs: Rekursives Entfernen der Schreibberechtigung der ,,anderen`` an allen Dateien und Unterverzeichnissen von /shared/docs/.
chmod -R og-w,o-x privat/: Rekursives Entfernen der Schreibberechtigung der Gruppe und Anderer an dem Verzeichnis privat/. Zusätzlich Entfernen der Berechtigung zum Ausführen für Andere.
chmod -c 644 verschiedenes/datei*: Die Berechtigungen aller Dateien im Verzeichnis verschiedenes, die mit datei beginnen, werden zu rw-r--r-- (d.h. Leseberechtigung für jeden, Schreibberechtigung nur für Besitzer) geändert. Berichtet nur geänderte Dateien.