ANLASS: Wenn ein Skript geschrieben wird, ist die Datei noch nicht als durchführbar markiert.
Die entsprechenden Bits (in der Konfiguration der Zugriffsmerkmale) sind nicht (korrekt) gesetzt.
LÖSUNG: Der Befehl chmod ermöglicht, dieses Merkmal - sowie alle sonstigen
( nach dem Unix-Schema verwalteten)
Zugriffsrechte - zu handhaben. (Beachte: Nur der Eigentümer oder der Systemen-Administrator kann Zugriffsrechte ändern)
SYNTAX: chmod 755 File_Name
-
Befehl-Version 1
Die erste Befehl-Version schreibt die Modi als eine absolute Zahl:
Ziffer 1 |
Der Eigentümer hat folgende Zugriffsrechte |
07=111b (Read=1b, Write=1b, Executable=1b)
|
Ziffer 2 |
Benutzer in derselben Gruppe wie der Eigentümer haben folgende Zugriffsrechte |
05=101b (Read=1b, Write=0b, Executable=1b)
|
Ziffer 3 |
Alle anderen Benutzer haben folgende Zugriffsrechte |
05=101b (Read=1b, Write=0b, Executable=1b)
|
Tab. Erläuterung der numerischen Syntax von chmod
-
Befehl-Version 2
Eine weitere Möglichkeit ist die symbolische Darstellung der Modi.
Letztere folgt einer ausführlichen Syntax - was auch heißt, dass es meist mehrere Möglichkeiten gibt, um ein Ergebnis zu bewirken.
SYNTAX: chmod u=rwx,go=u-w File_Name
Die zweite Befehl-Version ist eine Möglichkeit, die erste Befehl-Version anders aber gleichwertig zu formulieren:
u | Der Eigentümer |
g | Benutzer in derselben Gruppe wie der Eigentümer haben folgende Zugriffsrechte |
o | Alle anderen Benutzer haben folgende Zugriffsrechte |
r | Lese-Rechte |
w | Schreib-Rechte |
x | Durchführbarkeit-Rechte |
Tab. Symbolische Syntax von chmod
Rekursiver Modus
Manchmal ist es erforderlich, Rechte rekursiv (für alle Objekte innerhalb eines Verzeichnisses) zu vergeben.
Dafür stellt chmod die Option R bereit. Sie unterscheidet aber nicht zwischen Datei und Verzeichnis
(Das Löschen des Durchführbarkeit-Bits eines Verzeichnisses bewirkt, dass sein Inhalt unerreichbar wird).
Die Standardlösung zu diesem Problem besteht - wie oft in der Unix-Welt - in der Verkettung mehrerer Befehle:
Dem Befehl chmod wird der Befehl
find vorangestellt, der geeignete Zielobjekte selektiert und weiterleitet.
Um z.B. allen Dateien (nicht aber den Verzeichnissen) innerhalb eines Verzeichnisses die Durchführungsrechte zu entnehmen, kann man folgenden Befehl eintippen:
find . -type f -print0 | xargs -0 chmod 644 (siehe auch z.B.
Lars Schenks Tipps)
Beachte:
Der Befehl find ermöglicht über Erkennungsmuster eine sehr feine Differenzierung der Objekte,
die an den nächsten Befehl weitergeleitet werden - siehe auch die Manpage.
|