Zum Ändern der Zugriffsrechte steht das Kommando chmod
zur Verfügung:
chmod [options] <mode> <dateiname>
|
Für die möglichen Optionen sei auf die Manuals verwiesen.
Symbolisch lassen sich die Rechte setzen durch eine Kombination aus der betreffenden Rechtegruppe:
Symbol | Rechtegruppe |
u | Eigentümer (user) |
g | Gruppe (group) |
o | Andere (others) |
a | Alle (all) |
und den entsprechenden Rechten:
Symbol | Recht |
r | Leserecht |
w | Schreibrecht |
x | Ausführungsrecht |
s | s-Bit setzen |
t | t-Bit setzen |
+ | Recht(e) hinzufügen |
- | Recht(e) entfernen |
= | Genau diese Recht(e) setzen |
user@sonne> ls -l hello
|
Rechte werden bitweise dargestellt, für Eigentümer, Gruppe und Andere.
Recht | Bitdarstellung | Wert |
Execute | 0000 0001 | 1 |
Write | 0000 0010 | 2 |
Read | 0000 0100 | 4 |
rwx | 0000 0111 | 7 |
Jede Rechtegruppe wird durch einen numerischen Wert repräsentiert,
die Sonderrechte (s,t) werden durch einen eigenen Wert dargestellt.
Somit werden dem
Kommando chmod
maximal vier Werte übergeben
(Abbildung).
Fehlen Werte, werden diese von links her (!) als Null (keine Rechte) angenommen,
d.h.
chmod 1 <datei>
|
ist gleichbedeutend mit
chmod 0001 <datei>
|
Für die Sonderrechte gelten folgende Bitdarstellungen:
Recht | Bitdarstellung | Wert |
t-Flag | 0000 0001 | 1 |
s-flag der Gruppe | 0000 0010 | 2 |
s-Flag des Eigentümers | 0000 0100 | 4 |
user@sonne> ls -l hello
|
Neue Dateien/Verzeichnisse werden offensichtlich stets mit ein und denselben Zugriffsrechten erzeugt:
user@sonne> mkdir testdir
|
Zuständig für dieses Verhalten ist die so genannte umask
,
die oft in der Datei /etc/profile
auf den Wert 022
voreingestellt wird.
Zusätzlich wird noch eine Maximalmaske benötigt, die sich
für Verzeichnisse und andere Dateien unterscheidet. Die bei der Erzeugung
gesetzten Rechte entstehen nun, indem von der Maximalmaske der durch umask
vorgegebene Wert subtrahiert wird:
Verzeichnisse | Dateien | |
Maximalmaske | 777 | 666 |
umask | 022 | 022 |
Ergebnis | 755 | 644 |
Mit dem Kommando umask
lässt sich die Voreinstellung ändern.