Das Original wurde vom Benutzer ScouT auf PRO-LINUX.DE veröffentlicht
Tipps: Shell-Kommandos – chmod 22. Nov. 1999
Das vorliegende Dokument enthält Änderungen und Erweiterungen
chmod zum ändern der DateirechteDie Syntax des Befehls chmod lautet:
chmod WerWieWas [,WerWieWas,...] Dateiliste
oder:
chmod Oktalzahl Dateiliste
Durch WerWieWas bzw. Oktalzahl wird die Rechtetabelle definiert. Innerhalb von WerWieWas darf es kein Leerzeichen geben. Wer bezeichnet den Benutzerkreis, dem man Rechte gibt, Wie die Art, in der die Rechte gegeben werden, und Was die Rechte als solche. Im einzelnen können folgende Kürzel benutzt werden:
Für Wer kann eines der folgenden Kürzel oder eine Kombination davon stehen:
| Kürzel | Bedeutung | Beschreibung |
|---|---|---|
| u | user | Rechte für den Dateibesitzer |
| g | group | Rechte für die Gruppe |
| o | others | Rechte für alle anderen Benutzer |
| a | all | Rechte für alle Benutzer (entspricht ugo) |
Für Was steht eines der folgenden Kürzel:
| Kürzel | Beschreibung |
|---|---|
| + | Die Rechte werden zu den vorhandenen zusätzlich vergeben |
| - | Die im folgenden genannten Rechte werden entzogen |
| = | Die im folgenden genannten Rechte ersetzen die bisherigen |
Für Wie steht eines der Rechtekürzel, oder eine Kombination davon:
| Kürzel | Beschreibung |
|---|---|
| r | Das Recht zu lesen (read) |
| w | Das Recht zu schreiben (write) |
| x | Das Recht die Datei auszuführen (execute) bzw. das Recht, das Verzeichnis zu betreten |
| X | (großes X!) Vergibt das x-Recht nur dann, wenn die Datei ein Verzeichnis ist oder es schon der Besitzer, die Gruppe oder andere Benutzer haben |
| u | Vergibt die Rechte so, wie sie beim Besitzer (user) zur Zeit sind |
| g | Vergibt die Rechte so, wie sie bei der Gruppe (group) zur Zeit sind |
| o | Vergibt die Rechte so, wie sie bei anderen Benutzern (others) zur Zeit sind |
Will sich der Dateibesitzer das x-Recht an der Datei testdatei geben, so geschieht das mit:
chmod u+x testdatei
Der Entzug des w-Rechts für alle Benutzer erfolgt mit:
chmod a-w testdatei
Will man sich selbst rwx, der Gruppe rx und anderen nur x gewähren, lautet der Befehl:
chmod u=rwx,g=rx,o=x testdatei
Der letzte Fall lässt sich eleganter mit der zweiten Syntaxvariante lösen. Oktalzahl ist eine dreiziffrige oktale Zahl, bei der die erste Ziffer die Rechte des Besitzers beschreibt, die zweite die der Gruppe und die dritte wieder die der anderen Benutzer.
Dabei haben die Ziffern folgende Bedeutung:
| Ziffer | Bedeutung |
|---|---|
| 0 | kein Recht |
| 1 | x-Recht |
| 2 | w-Recht |
| 4 | r-Recht |
Rechtekombinationen werden durch Addition der Grundwerte beschrieben.
Die Rechtekombination rx entspricht der Ziffer 5, umgekehrt repräsentiert die Ziffer 7 alle Rechte, also rwx. Das letzte Befehlsbeispiel läßt sich in dieser Syntax so schreiben:
chmod 751 testdatei
Beachten Sie, dass nur die erste Syntax das Entziehen einzelner Rechte oder deren zusätzliche Vergabe gestattet. Durch:
chmod 751 testdatei
werden bisher vorhandene Rechte ersetzt. Im Einzelfall liegt es im Ermessen des Benutzers, welche Befehlsform er anwenden will.
1) Der Benutzer Max ist Mitglied der Gruppe Buchhaltung. Er möchte eine Liste in einem Verzeichnis auf den zentralen Server der Firma ablegen. Er selbst möchte Lese- und Schreibrechte. Alle Mitglieder seiner Gruppe sollen die Liste lesen können. Alle weiteren Betriebsangehörigen sollen keine Rechte bekommen:
| read | write | exec | read | write | exec | read | write | exec | |
|---|---|---|---|---|---|---|---|---|---|
| user | r | w | – | ||||||
| group | r | – | – | ||||||
| others | – | – | – | ||||||
| oktal | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
| oktal | = 6 | = 4 | = 0 |
Max gibt entsprechend den Befehl ein:
chmod 640 liste.datei
2) Der Systemadministrator Dave hat ein Skript geschrieben, das jeder in der Firma betrachten und ausführen darf. Änderungen bleiben ihm vorbehalten:
| read | write | exec | read | write | exec | read | write | exec | |
|---|---|---|---|---|---|---|---|---|---|
| user | r | w | x | ||||||
| group | r | – | x | ||||||
| others | r | – | x | ||||||
| oktal | 4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
| oktal | = 7 | = 5 | = 5 |
Dave gibt folgenden Befehl ein:
chmod 755 skript4alle.sh
Zum Abschluß noch die Ausgabe wie man sie mit ls -l erhält:
-rw-r----- 1 max buchhaltung 836 2011-02-07 11:30 liste.datei -rwxr-xr-x 1 dave it-abteilung 101 2011-02-09 21:48 skript4alle.sh