Chmod - LinkFang.de





Chmod


chmod (von englisch: change mode) ist ein Kommandozeilenprogramm unter Unix, mit dem sich die klassischen Unix-Dateirechte verändern lassen. Das chmod-Kommando gibt es bereits seit der ersten Version des AT&T-Unix (Anfang der 1970er Jahre).

Die Attributsänderungen lassen sich nur von dem Besitzer der Datei oder dem root-Benutzer durchführen.

Benutzung

Das Programm wird in der Unix-Shell wie folgt benutzt:

$ chmod [options] mode file1 …

Es sind zunächst Optionen möglich; options kann dabei -v für ausführliche Ausgaben (verbose) und -R für rekursives Durchgehen aller Unterverzeichnisse sein.

mode steht für die auf die Datei oder Dateien anzuwendende Rechtemaske. Diese kann in einer numerischen Notation oder einer symbolischen Notation geschehen.

Symbolische Notation

chmod ermöglicht eine Kurzschreibweise, um Dateirechte einfach zu kombinieren. Dabei steht u für den Eigentümer (user), g für die Gruppe (group) und o für alle anderen Benutzer (other). Schließlich gibt es noch a, welches alle drei Benutzergruppen umschließt (all). Um zum Beispiel allen möglichen Benutzern die Ausführrechte einer Datei zu geben, reicht ein chmod a+x dateiname.

Diese Benutzerklassen werden mit drei möglichen Operatoren mit den Dateirechten verknüpft:

  • + fügt die entsprechenden Dateirechte den entsprechenden Benutzerklassen hinzu (überschreibt nur die betroffenen Rechte)
  • - entzieht den entsprechenden Benutzerklassen die entsprechenden (und betroffenen) Dateirechte
  • = setzt für die Benutzerklassen die entsprechenden Dateirechte neu, ungeachtet ihrer vorherigen Rechte am Objekt (override).

Anschließend werden die entsprechenden Dateirechte angegeben. Dies sind r, w, x, s und t entsprechend der klassischen symbolischen Notation. Zusätzlich gibt es noch das spezielle Zeichen X (special execute). Dabei handelt es sich nicht um ein Dateirecht, sondern um einen Ersatz für x, welches bei Verzeichnissen das Ausführ-Recht setzt (ungeachtet, ob sie es vorher gesetzt hatten) und nur bei den Dateien ein Ausführ-Recht setzt, die bereits ein Ausführ-Recht bei mindestens einer Benutzerklasse gesetzt haben. Es ist daher nur dann sinnvoll, wenn es mit + und der -R-Option genutzt wird, um den entsprechenden Benutzerklassen Zugriff zu einem Verzeichnisbaum zu geben, ohne normalen Dateien (keinen Programmen) das Ausführ-Bit zu setzen, was normalerweise beim Aufruf von chmod -R a+rx passieren würde. Mit X hingegen kann man chmod -R a+rX benutzen.

Numerisch

Die numerische Benutzung des chmod ist folgendermaßen aufgebaut

chmod SUGO beispiel.txt

S ist das „sticky bit“, i.d.R. 0
U steht für den Benutzer/Eigentümer der Datei
G steht für die Gruppe und
O steht für other, also alle anderen Benutzer

Die vier oktalen Ziffern nach dem Befehl chmod tragen für die Stellen von S, U, G oder O je einen Wert von 0 bis 7. Bei U, G und O steht 4 für lesen, 2 für schreiben und 1 für ausführen.

# Berechtigung rwx
7 Voll 111
6 Lesen und Schreiben 110
5 Lesen und Ausführen 101
4 Nur Lesen 100
3 Schreiben und Ausführen 011
2 Nur Schreiben 010
1 Nur Ausführen 001
0 Keine 000

Das "sticky bit" ergibt ein unterschiedliches Verhalten bei Verzeichnissen und Dateien. Bei Verzeichnissen erzeugt in den meisten modernen UNIX-Implementierungen ein gesetztes sticky-Bit die Eigenschaft, dass (bei entsprechenden übrigen Rechten) jeder Benutzer Dateien in das Verzeichnis schreiben darf, aber nur seine eigenen bearbeiten oder löschen kann. Ebenfalls möglich sind die Werte 4 und 2, die als Dateieigentümer den Verzeichniseigentümer bzw. die Verzeichnisgruppe für Dateien eintragen, so dass z. B. Benutzer unterschiedlicher primärer Gruppenzugehörigkeit sich leicht die Dateien in einem Verzeichnis teilen können.

# Berechtigung
4 SUID (Setze User des Verzeichnisses für Dateien)
2 SGID (Setze Gruppe des Verzeichnisses für Dateien)
1 Nur Eigentümer (und Superuser) darf Dateien löschen und umbenennen
0 Keine

Insbesondere für ausführbare Dateien stellt das "sticky bit" ein Sicherheitsrisiko dar, da es den Kontext des Datei-Eigentümers statt den des Ausführenden setzt. Die ursprüngliche Bedeutung, ausführbare Dateien im Arbeitsspeicher zu halten, um einen Performanzgewinn zu erzeugen, ist kaum noch von Bedeutung.

Beispiel

$ chmod u=rw MyFile
$ chmod g-rx MyFile
$ chmod o+r MyFile
$ chmod 0700 Beispiel.txt

Erklärung:

  1. setzt die Rechte der Datei „MyFile“ des Besitzers (der Datei) auf Lesen (r) und Schreiben (w), löscht dabei das Ausführrecht, weil nicht gesetzt,
  2. entzieht der Gruppe das Recht auf Lesen (r) und Ausführen (x), berührt aber nicht das Schreibrecht,
  3. fügt für alle Anderen das Recht auf Lesen (r) hinzu (falls noch nicht vorhanden).
  4. Bei dem numerischen Verfahren werden allen bis auf den Eigentümer der Datei alle Rechte entzogen, der Eigentümer kann die Datei jedoch lesen (4), beschreiben (2) und ausführen (1).

Grafische Alternativen

In vielen grafischen Dateimanagern und FTP-Clients, zum Beispiel Konqueror/KDE, Nautilus/GNOME, lassen sich die Dateirechte grafisch bearbeiten.

Siehe auch

Weblinks


Kategorien: GNU core utilities | Unix-Software

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Chmod (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.