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). – Wikipedia
chmod (-R) (u|g|o|a) (+|-|=) (r|w|x|s|t) Datei/Verzeichnis
-R -> auch Unterverzeichnisse ändern (rekursiv)
-u -> user (Eigentümer)
-g -> group (Gruppe)
-o -> others (Andere)
-a -> all (Alle anderen)
+ -> Hinzufügen
– -> entfernen
= -> gleich
r -> read (Lese-Rechte)
w -> write (Schreib-Rechte)
x -> execute (Ausführ-Rechte)
s -> beim ausführen, startet das Programm mit dem Rechten des Eigentümer (u+s) oder der Gruppe (g+s)
t -> Lese-, Schreib-, Ausführrechte für den Inhalt eines Verzeichnisses, jedoch darf man nur seine eigenen Dateien löschen, mit Ausnahme des Eigentümers des Verzeichnisses
Zudem kann man die Zugriffsrechte auch per Ziffer (Oktalzahl) angeben: im folgendem Beispiel beschränke ich mich mal auf u|g|u und r|w|x
Die Oktalzhl ist eine Zusammenfassung von Binärzahlen, welche wiederum verschiedene Zugriffsrecht und Wertigkeiten haben.
Wertigkeiten: x = 1 ; w = 2 ; r = 4
Beispiel:
chmod -R 640 /home/User/Desktop/test
Symbolisch: r w | r |
Oktal: 6 | 4 | 0
Binär: 1 1 0 | 1 0 0 | 0 0 0
User: w (2) + r (4) = 6
Gruppe: r (4) = 4
Other: (0) = 0
0 <-> — <-> keine Berechtigung
1 <-> –x <-> ausführ-Rechte
2 <-> -w- <-> schreib-Rechte
3 <-> -wx <-> schreib-, ausführ-Rechte
4 <-> r– <-> lese-Rechte
5 <-> r-x <-> lese-, ausführ-Rechte
6 <-> rw- <-> lese-, schreib-Rechte
7 <-> rwx <-> lese-, schreib-, ausführ-Rechte
um nun z.B. alle Dateien einer Webseite, welche im aktuellen Verzeichnis liegen die ausführ-Rechte zu entziehen kann man sich einen find-Befehl zusammenbasteln:
find . -type f -exec chmod -x {} \;
bzw. folgendermaßen, um die schreib-rechte nur für den Besitzer der Dateien zu erlauben:
find . -type d -exec chmod 750 {} \;
find . -type f -exec chmod 640 {} \;