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.