next up previous contents index
Next: Dateimanipulaton Up: Dateien Previous: Block Devices

Zugriffsrechte und Dateiattribute

Die oben genannten Zugriffsrechte  und Dateiattribute  lassen sich bei der Anzeige eines Directory-Inhaltes mit dem Befehl  ls -l an den Einträgen ablesen. Das Beispiel aus Kapitel 1.1 zeigte in der Ausgabe  eine Reihe von normalen Dateien:

  $ ls -l
-rw-r-r- 1 arthur earth 2604 Sep 25 21:05 basics.aux
-rw-r-r- 1 arthur earth 2029 Sep 25 21:05 basics.log
-rw-r-r- 1 arthur earth 4590 Sep 25 21:05 basics.tex
-rw-r-r- 1 arthur earth 1269 Sep 25 21:05 basics.toc

Die Einträge in der ersten Spalte -rw-r-r- halten den Typ der Datei und die Zugriffsrechte  fest. Das erste Minuszeichen bedeutet, daß es sich um eine normale Datei handelt. Stünde dort ein d, handelte es sich um ein Directory. Die special devices Character und Block device haben an der  Stelle ein c bzw. b stehen. Weitere mögliche Einträge sind l (Link) , s (Socket)  oder p (Pipe) . Sie werden teilweise später noch behandelt werden.

Die sich anschließenden Buchstaben sind jeweils als Gruppe von drei zusammengehörigen Einträgen (rwxrwxrwx) zu lesen. Jeweils ein rwx bezieht sich auf den Besitzer der Datei , die Gruppenrechte  der Datei und die Rechte  aller anderen Benutzer  daran. Dabei steht das r für Lesen (read), das w für Schreiben (write) und das x für Ausführen (execute). Ein Minuszeichen an der entsprechenden Stelle bedeutet, daß dieses spezielle Recht der Benutzerin nicht gewährt wird.

Jeder Benutzer auf dem System  gehört einer Gruppe von Benutzern an. Dies können entweder Studenten, Professorinnen, wissenschaftliche Mitarbeiter, Systembetreuer oder sonstige Gruppierungen (wie z. B. alle zum Scannen zugelassenen Benutzer) sein. Jede dieser Gruppen  bekommt bestimmte Rechte durch die Systembetreuerin zugewiesen.  

Bei den eingangs angeführten Beispieldateien darf der Besitzer arthur die Datei lesen und beschreiben. Alle Benutzer der Gruppe earth dürfen die Datei lesen und alle anderen Benutzer des Systems dürfen sie ebenfalls lesen. Keiner von ihnen darf die Datei direkt ausführen.

Ein anderes Beispiel von Dateien aus dem Directory /dev/ sieht wie folgt aus:

crw--w----   5 root     tty      128,  1 Nov 29 04:15 console
dr-xr-xr-x   2 root     root        4256 Nov 29 21:37 fd
brw-r-----   2 root     root       4,  0 Apr  7  1994 root

Die Datei  console (das ist die direkt an dem Unix-Server  angeschlossene Konsole ) ist ein special character device, das der Benutzerin root  gehört, von dem sie lesen kann und es beschreiben darf. Die Benutzer der Gruppe tty dürfen auf die Konsole schreiben, aber keine Eingaben von dort lesen. Alle anderen Benutzer  dürfen die Konsole weder beschreiben, noch von ihr lesen oder sie gar ausführen. Dieses Beispiel macht den Sinn der nach Benutzer unterschiedenen Zugriffsrechte  auf Dateien deutlich: Natürlich muß der Super-User auf der Konsole Eingaben machen und die entsprechenden Ausgaben  auch dort sehen dürfen. Ebenso müssen Logging-Programme ihre Meldungen bei Systemstörungen  auf die Konsole schreiben können - es ist aber nicht nötig, daß außer root noch andere Benutzer von der Konsole lesen dürfen!

fd ist ein Directory, in dem die verschiedenen special devices  für den Zugriff  auf Floppylaufwerke  liegen. Jede Benutzerin  darf in diese Verzeichnis  wechseln und die Dateien  darin lesen, aber nicht darin schreiben.

root ist ein special block device, welches das Wurzelverzeichnis  des Filesystems  widerspiegelt. Nur der Super-User darf dort lesen und schreiben und Benutzer der Gruppe root dürfen dort befindliche Dateien lesen. Alle anderen Benutzer haben keinerlei Rechte dort. 

Zugriffsrechte auf Dateien können vom Besitzer (und vom Super-User) mit dem Befehl  chmod  geändert werden. Dabei gibt man an, für wen die Rechte  geändert werden sollen, nämlich für die Benutzerin (u), die Gruppe (g), alle anderen (o) oder alle drei zusammen (a für all). Ein Plus- bzw. Minuszeichen dient der Angabe, ob ein bestimmtes Recht hinzugefügt oder entfernt werden soll. Die Rechte selber werden durch r, w oder x bezeichnet. Mit einem = wird ein Recht komplett neu gesetzt.

Folgender Befehl macht die Datei  plot1.ps für den Benutzer arthur nicht-ausführbar:

$ chmod u-x plot1.ps
$ ls -l plot1.ps
-rw-r-xr- 1 arthur earth 4242 Oct 29 13:42 plot1.ps

Dieser Befehl entzieht der Gruppe die Schreib- und Ausführungsrechte:  

$ chmod g=r plot1.ps
$ ls -l plot1.ps
-rw-r-r- 1 arthur earth 4242 Oct 29 13:42 plot1.ps

Die Zugriffsrechte  können auch numerisch bezeichnet werden und als Argument  an chmod übergeben werden. Dabei werden den Buchstaben r, w und x folgende Werte zugewiesen:

r 4, w 2, x 1

Den entsprechenden Zahlencode  erhält man durch Addition dieser Werte, also

4 + 1 = 5 = r-x
4 + 2 = 6 = rw-
4 + 2 + 1 = 7 = rwx

und durch Kombination aller Ziffern eine dreistellige Zahl, welche die Zugriffsrechte für alle Benutzer  regelt.

$ chmod 641 plot1.ps
$ ls -l plot1.ps
-rw-r--x 1 arthur earth 4242 Oct 29 13:42 plot1.ps

Daneben gibt es noch weitere Dateiattribute , die gesetzt werden können, z. B. das SUID- oder SGID-Bit , wodurch ausführbare Dateien dann mit den jeweiligen Rechten  des Besitzers bzw. der Gruppe laufen. Näheres ist der Manual-Seite von chmod (1) zu entnehmen.


next up previous contents index
Next: Dateimanipulaton Up: Dateien Previous: Block Devices

Kai Altenfelder
Mon Dec 2 08:36:57 MET 1996