chmod – HowTo

closeDieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!

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 {} \;