chmod

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Der Shell-Befehl chmod ändert die Zugriffsrechte von Dateien und Verzeichnissen, sofern der aufrufende Benutzer Eigentümer oder Benutzer "root" ist.

Syntax

chmod versteht zwei verschiedene Arten von Befehlen.

Bestimmung der Zugriffsrechte über Ziffern

Zum Setzen der Zugriffsrechte werden drei- oder viertstellige Oktalzahlen verwendet. Diese errechnen sich folgendermassen.

Oktalzahl Ausgabe bei "ls -l" Zugriffsrechte
1 --- keine
2 --x ausführen
3 entspricht 2 + 1 -w- schreiben
4 -wx schreiben und ausführen
5 entspricht 4 + 1 r-x lesen und ausführen
6 entspricht 4 + 2 rw- lesen und Schreiben
7 entspricht 4 + 2 + 1 rwx alle (lesen, schreiben, ausführen)

Bestimmung der Zugriffsrechte über Buchstaben

u (user) Eigentümer
g (group) Gruppe
o (others) alle anderen
r (read) lesen
w (write) schreiben
x (execute) ausführen
s Setzen des setUID bzw. setGID-Bit
t Setzen des Sticky Bit

Zum Setzen der Zugriffsrechte werden Plus-, Minus- und Gleichheitszeichen verwendet.

Beispiele

Vorgang mit Ziffern mit Buchstaben
Einer Gruppe das Lese- und Schreibrecht für die Datei "file" erteilen. chmod g+rw file
Allen Benutzern, die nicht Eigentümer oder Gruppenmitglieder sind alle Zugriffsrechte für die Datei "file" entziehen. chmod o-rwx file
Die beiden obigen Befehle lassen sich auch kombinieren: chmod g+rw,o-rwx file
Erteilen aller Rechte für den Eigentümer, die Gruppenmitglieder und alle anderen für das Verzeichnis "directory". chmod ugo=rxw directory
chmod 644 file chmod u-rw,go=r file
chmod 777 file chmod a=rwx file

Verwendung

Entzug der Schreibrechte für die Gruppe für das Verzeichnis "directory" und rekursiv alle darin enthaltenen Dateien und Unterverzeichnisse.

$ chmod -R g-w directory

Da das x-flag für Verzeichnisse zwingend gesetzt sein muss, um hineinwechseln zu können, führt "chmod -R 600 directory" zur Fehlermeldung "Keine Berechtigung". Bevor nämlich der Befehl die erste Datei erreicht, hat er bereits die Rechte von "directory" selbst auf 600 gesetzt und kann deshalb nicht mehr hineinwechseln. Um diese Hindernis zu umgehen, sucht folgender Befehl im Unterverzeichnis zuerst nach allen gewöhnlichen Dateien, auf die der Befehl "chmod 600" angewendet werden soll. Das Verzeichnis und die darin enthaltenen Unterverzeichnisse bleiben dabei unangetastet.

$ find directory -type f -exec chmod 600 {} \;

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger chmodwbm Enzyklopädischer Artikel