| FOTO | AUTO | EDV | AUDIO |

Berechtigungen des Dateisystems

Unter Linux ist jede Datei und jedes Verzeichnis mit bestimmten Berechtigungen versehen. Man kann sich die Berechtigungen ansehen, indem man an der Konsole z.B. den Befehl ls -l eingibt. Berechtigungen werden ferner auch von Dateimanagern angezeigt und können oft auch bei grafischen Desktop-Oberflächen z.B. per Rechtsklick→Eigenschaften angezeigt und verändert werden.

Beispiel
Gibt man an der Linux-Shell den Befehl ls -l ein, so erhält man in etwa die folgende Ausgabe:

chme@xpert:~/dokumente$ ls -l
insgesamt 3
-rw-r--r--    1 chme     chme           35 2003-10-28 19:05 berechtigungen.txt
-rw-r--r--    1 chme     chme           27 2003-10-28 19:05 dokument1.txt
drwx------    2 chme     chme         1024 2003-10-28 19:05 verzeichnis
chme@xpert:~/dokumente$ 
Wie man hier sehen kann, stehen die Berechtigungen in der linken Spalte. In der dritten und vierten Spalte steht jeweils der Benutzername und der Name der Gruppe, der diese Datei gehört.

Berechtigungen von Dateien

Im Beispiel oben handelt es sich bei den ersten beiden Einträgen um Dateien. Eine Bereichtigung, bei der jeder das Recht zu lesen, zu schreiben und zum Ausführen hat, sieht folgendermaßen aus:

-rwxrwxrwx
Die Berechtigung besteht aus drei Paaren von rwx. Jedes r steht für lesbar, jedes w steht für Schreibzugriff und jedes x steht für ausführbar.

Die erste Kombination von rwx steht für den Benutzer, dem diese Datei gehört (ablesbar in der dritten Spalte der Ausgabe von ls -l). Im Falle von rwx kann der Benutzer die Datei lesen, sie verändern und ausführen. Fehlt hier das x, so ist die Datei auch nicht ausführbar, wie dies bei den meisten Datendateien der Fall ist.

Die zweite rwx-Kombination bezeichnet die Berechtigungen für Benutzer, welche der bestimmten Gruppe angehören (vierte Spalte der Ausgabe von ls -l). So kann man hier z.B. mit r– festlegen, dass Benutzer, welche der besagten Gruppe angehören, eine Datei nur lesen, aber nicht verändern können.

Die dritte Kombination von rwx steht für die Berechtigungen, welche alle anderen Benutzer haben. Wenn man nicht möchte, dass andere Benutzer die eigenen Dokumente lesen können, so gibt man hier z.B. — an.

Berechtigungen von Verzeichnissen

Bei Verzeichnissen sieht eine Berechtigung so aus:

drwxrwxrwx

Hier beschreibt das erste Zeichen d, dass es sich um ein Verzeichnis (Directory) handelt. Die Berechtigungen sind in etwa wie bei den Dateien, allerdings bedeutet das x hier nicht ausführbar, sondern eher 'begehbar', d.h., es legt fest, ob bestimmte Benutzer in das Verzeichnis wechseln dürfen oder nicht.

Ändern von Berechtigungen

Um die Berechtigungen von Dateien bzw. Verzeichnissen zu ändern, gibt es den Befehl chmod:

chmod a+r test.txt
Dieser Befehl setzt die Berechtigung für Lese-Zugriff für alle, d.h. für den Eigentümer, die Gruppe und alle anderen.

Der Aufbau des Befehls chmod sieht etwa so aus:

chmod A?B dateiname

Hier werden die Werte für A, ? und B folgendermaßen ersetzt:

Zeichen Bedeutung
Au (Benutzer), g (Gruppe), o (andere) oder a (alle)
?+ (Rechte hinzufügen) oder - (Rechte entfernen)
B r (Lesezugriff), w (Schreibzugriff) oder x (ausführbar/begehbar)

So entfernt der Befehl

chmod u-x /home/paul/datei

die Berechtigung „Ausführen“ für den Besitzer an der Datei /home/paul/datei. Der Befehl

chmod -R u-x /home/paul/

entfernt die Berechtigung „x“ ab dem Ordner /home/paul/ an allen Dateien und Ordnern.

Alternativ hierzu können Berechtigungen auch folgendermaßen gesetzt werden:

chmod ABC dateiname

Die Werte für A, B und C erhalten Sie, indem Sie die Rechte anhand der folgenden Tabelle addieren:

Berechtigung A: Benutzer B: Gruppe C: Andere
r (lesen) 4 4 4
w (schreiben) 2 2 2
x (ausführen) 1 1 1

Soll eine Datei beispielsweise die Berechtigung

rw-r-----
erhalten, so gibt man ein:

chmod 640 dateiname

Sonderberechtigungen

rws rws rwT
set UserID on execution set GroupID on Execution sticky Bit mit x-Ausführungsrecht

mit chmod 1777 /usr/bin/passwd root shadow (=chmod +s)können die Sonderrecht eingerichtet werden, wobei hier nur die 1. Ziffer betrachtet wird:

0 kein Sonderrecht
1 sticky Bit Löschrecht unterhalb des Verzeichnisses
2 n SGID Dateien gehören zur Gruppe der Verzeichnisgruppe
3 1+2
4 SUID Prozesse ausführen, (Bsp. passwd, gpasswd, mount, ping) die normalerweise kein user ausführen darf(root-Rechte)
5 1+4
6 2+4
7 1+2+4

Suchne nach Berechtigungen

suchen nach einer Datei mit den Rechten rwx r-s r-x in kompletten Verzeichnisbaum:

find / -perm 2755 

Standard-Zugriffsrechte setzen

Man kann natürlich auch Zugriffsrechte festlegen, welche für neue Dateien standardmäßig gelten sollten. Dies geschieht mit dem Kommando umask, welches man an das Initialisierungsskript der Shell, z.B. .cshrc oder .bash_profile anhängen oder in dieser Datei verändern kann, wenn es dort schon vorhanden ist. Die Berechtigungen für neue Dateien und Verzeichnisse sehen dann z.B. folgendermaßen aus:

Wert für umask Datei Verzeichnis
022 - r w - r - - r - - d r w x r - x r - x
027 - r w - r - - - - - d r w x r - x - - -
077 - r w - - - - - - - d r w x - - - - - -

Der Aufruf lautet dann z.B. so:

umask 022

Den aktuellen umask-Wert bekommt man heraus, indem man einfach nur umask eingibt.

Übung zur Vererbung

Fred erzeugt einen Ordner:

mkdir fred, chmod 775

Wilma gibt Folgendes ein:

touch /fred/wilma.txt, vi Inhalt, chmod 700, mkdir /fres/wilma-verz, chmod 700, touch /fred/wilma-verz/wilma2.txt

Ergebnis
Fred kommt weder an die Datei wilma.txt, noch an das Verzeichnis wilma-verz ran.

Weitere Infos