Zugriffsrechte Das Dateisystem - Inhalt Dateiattribute Inhalt Index


Ändern der Zugriffsrechte

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.


Symbolischer Modus

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

Beispiele

user@sonne> ls -l hello
-rw-r--r--    1   user   users       108  Apr  7 12:10  hello

user@sonne> chmod a+w hello
-rw-rw-rw-    1   user   users       108  Apr  7 12:10  hello

user@sonne> chmod g-rw,u+xs hello
-rws---rw-    1   user   users       108  Apr  7 12:10  hello


Numerischer Modus

Numerischer Modus von chmod

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

Beispiele

user@sonne> ls -l hello
-rw-r--r--    1   user   users       108  Apr  7 12:10  hello

user@sonne> chmod 666 hello
-rw-rw-rw-    1   user   users       108  Apr  7 12:10  hello

user@sonne> chmod 4706 hello
-rws---rw-    1   user   users       108  Apr  7 12:10  hello


Voreinstellung

Neue Dateien/Verzeichnisse werden offensichtlich stets mit ein und denselben Zugriffsrechten erzeugt:

user@sonne> mkdir testdir
user@sonne> touch testdat
user@sonne> ls -ld test*
-rw-r--r--    1   user   users         0  Apr  7 13:11  testdat
drwxr-xr-x    2   user   users      1024  Apr  7 13:11  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.


Zugriffsrechte Das Dateisystem - Inhalt Dateiattribute Inhalt Index