chmod

Das Programm chmod

chmod modifiziert allgemeine Zugriffsrechte

Syntax: chmod [-Option] ... <oktaler Modus> <Datei> ...
Syntax: chmod [-Option] ... <Modus> [,<Modus>] ... <Datei> ...


Beschreibung:

chmod setzt oder verändert die Zugriffsrechte von Dateien und Verzeichnissen. Die allgemeine Form der Zuordnung von Zugriffsrechten lässt sich wie folgt darstellen:

[<Anwenderklasse>][<Zuweisung>][<Zugriffsrechte>]

Alle drei Angaben sind optional.

Anwender könnt nur die Zugriffsrechte eigener Dateien modifizieren; root hat Zugriff auf alle Dateien und Verzeichnisse.

Die Zugriffsrechte werden als Modus bezeichnet. Der Modus kann entweder durch Buchstabenkennungen oder als (drei- oder vierstellige) Oktalzahl angegeben werden.
 

Modusoperatoren über Buchstabenkennung:


Die Buchstabenkennung setzt sich aus den folgenden Teilen zusammen:

[ugoa...] [[+-=][rwxstugo...]...] [,...]

Für die Spezifikation der Anwenderklassen gibt es vier Möglichkeiten, die in Form von Schlüsselworten angegeben werden:

a(all) kennzeichnet alle Klassen von Anwendern
u(user) bezeichnetden Eigentümer einer Datei, eines Verzeichnisses
g(group) die Gruppe
o(other) alle anderenAnwender


Die Zuweisung von Rechten wird durch arithmetische Symbole angegeben:

= setzt Zugriffsrechte. Dabei werden alle bestehenden Zugriffsrechte durch die rechts von dem Operator eingetragenen Rechte ersetzt. Werden rechts vom Operator keine Zugriffsrechte angegeben, entspricht das dem Löschen aller Zugiffsrechte.
+ ergänzt Zugriffsrechte.  Die mit dem Operator  angegebenen Zugriffsrechte werden neu gesetzt. Die bestehenden Zugriffsrechte bleiben erhalten.
- löscht Zugriffsrechte.  Mit dem Operator werden gesetzte Zugriffsrechte gelöscht.


Die Berechtigungen sind:

r (read) für Lesen
w (write) für Schreiben
x (execute) für Ausführen


Die Optionen:

s (set user/group ID on execution) setzt die Identitätskennung bei der Programmausführung.
t (text) schtzt die Dateien eines beschreibbaren Verzeichnisses vor Löschung durch fremde Systembenutzer.


Die nachgestellten Optionen schützen die entsprechenden Rechte vor Veränderung (zur Benutzung im Zusammenhang mit -a):

u für Besitzer
g für die Gruppe
o für Andere


Erweiterte Zuweisungen von Zugriffsrechten könnt basierend auf den bestehenden Rechten einzelner Anwenderklassen vorgenommen werden.
 


Modusoperatoren über Oktalzahlen:


Bei Angabe als Oktalzahl (also zur Basis 8 d.H) legen die letzten drei Ziffern jeweils die Rechte für den Besitzer, die Gruppe und die Anderen fest. Die einzelnen Bits der Oktalziffer stehen dabei für Lesen (4), Schreiben (2) und Ausführen (1).

Wenn vier Ziffern angegeben werden, so setzt die erste Ziffer spezielle Ausführungsmodi:

Wenn das erste Bit (4) dieser Zahl gesetzt ist, wird ein Programm mit der effektiven Benutzerkennung (BEUID für Effective User-ID) des Besitzers dieser Datei ausgeführt.
Wenn das zweite Bit (2) dieser Zahl gesetzt ist, wird ein Programm mit der Gruppenkennung dieser Datei anstelle der realen Gruppenkennung des aufürufenden Benutzers ausgeführt.
Das dritte Bit (1) schliesslich hat unter Linux nur bei Verzeichnissen eine Bedeutung.


Die Oktalzahlen von 0 bis 7 stetzen sich im Binärcode folgendermaßen zusammen:

bin Oktalzahl Rechte
000 0 ---
001 1 --x
010 2 -w-
011 3 -wx
100 4 r--
101 5 r-x
110 6 rw-
111 7 rwx

 

nach oben

Anmerkungen:


chmod verändert/setzt keine Zugriffsrechte von Links. Stattdessen wird immer die durch den Link bezeichnete Datei behandelt. Bei der rekursiven Bearbeitung von Verzeichnisbäumen werden Links ignoriert.
 

Optionen:

-c
--changes
(changes) es werden nur die Dateien angezeigt, deren Zugriffsrechte tatsächlich verändert werden
-f
--silent
--quiet
(force) Fehlermeldungen wegen fehlgeschlagener Änderungsversuche werden unterdrückt
-v
--verbose
(verbose) alle Aktionen werden angezeigt
-R
--recursive
(recursive) die Zugriffsrechte aller Dateien in den Unterverzeichnissen werden ebenfalls geändert
--help Hilfe
--version Programmversion

 

Siehe auch:   chgrp   chown

nach oben

Beispiele für die Nutzung des Programms:

Schreibrechte vergeben:

user@sonne> chmod +w [/Verzeichnis/]DateiName

 

Zugriffsrechte für den Eigentümer ergänzen:

user@sonne> chmod u+g+o [/Verzeichnis/]DateiName

 

Setuid-Bit für den User ergänzen:

user@sonne> chmod u+s [/Verzeichnis/]DateiName

 

Setuid-Bit für die Gruppe ergänzen:

user@sonne> chmod g+s [/Verzeichnis/]DateiName

 

Setuid-Bit für alle anderen ergänzen:

user@sonne> chmod o+t [/Verzeichnis/]DateiName

 

Zugriffsrechte eigener Dateien modifizieren:

user@sonne> chmod a+r,o+t [/Verzeichnis/]DateiName

 

Skript mit dem Ausführungsrecht versehen:

user@sonne> chmod 755 [/Verzeichnis/]DateiName

 

Allen Usern und Gruppen das Lesen, Schreiben und Ausführen erlauben:

user@sonne> chmod 777 [/Verzeichnis/]DateiName

 

Autor: Omega-X, Datum: 19.08.2001