2. Datei / Verzeichnisrechte unter Unix und Linux
UNIX
kennt drei verschiedene Benutzerklassen (user, group, other) mit
jeweils drei verschiedenen Zugriffsrechten (read, write, execute)
2.1 Benutzerklassen
user :
Der Eigentümer (Þ Benutzername) der Datei oder des
Kataloges
group :
Die Gruppe der die Datei zugeordnet ist
other :
Alle Benutzer, die nicht zu den beiden anderen Klassen gehören.
2.2 Zugriffsrechte
Die
Zugriffsrechte werden durch 3 Bits für jede einzelne Gruppe
definiert und können kombiniert werden.
Für jede
Gruppe gibt es die Rechte: r (read), w (write), x (execute)
Die
einzelnen Rechte besitzen keine Hierarchie, d.h. ein Schreibrecht
bedeutet kein Leserecht, und ein Recht auf Ausführen kein
Schreib-/Leserecht, etc.
Ein gesetztes Bit kennzeichnet das betreffende Zugriffsrecht. Je nach Art des Rechtes (read, write, execute) wird es durch ein r, w oder x dargestellt.
Ein
gelöschtes Bit zeigt an, daß das jeweilige Recht nicht
eingeräumt wurde.
Dies wird durch einen Strich - an der
betreffenden Stelle angezeigt.
Beispiel:
Ausschnitt
aus dem betreffenden Aufbau eines Eintrages: … user group
other …
Anzeige mit den Befehl ls -l: … rwxr-x--x …
2.2.1 Dateirechte
|
Zugriffsrecht |
Bedeutung |
|
r (read) |
Der Dateiinhalt kann mit den Standardwerkzeugen gelesen werden. vi kann den Inhalt in einen Puffer laden. Mit dem Kommando cp kann der Inhalt ausgelesen werden, um ihn in eine andere Datei zu kopieren.
|
|
w (write) |
Der Dateiinhalt darf modifiziert werden. Der veränderte Inhalt des Editor-Puffers im Verzeichnis /tmp kann in die Datei zurückgeschrieben werden. Ob eine Datei gelöscht werden darf, ist nicht von den Dateirechten abhängig, sondern von den Rechten auf das Verzeichnis, in welchem sich die Datei befindet.
|
|
x (execute) |
Falls die Datei ein Programm ist, kann sie ausgeführt werden. Es werden zwei Arten von Programmen unterschieden: Binärprogramme und Shell-Skripte. Binärprogramme enthalten Maschinencode. Shell-Skripte enthalten Kommandozeilenbefehle und spezielle Skript-Kommandos. |
2.2.2 Verzeichnisrechte
|
Zugriffsrecht |
Bedeutung |
|
r (read) |
Die Dateieinträge im Verzeichnis sind lesbar. Dieses Recht braucht z.B das Kommando ls oder auch die Shell, um mit Suchmustern Dateinamen aufzufinden.
|
|
w (write) |
Einträge in diesem Verzeichnis sind veränderbar. Es können neue Dateien in diesem Verzeichnis angelegt und existierende Dateien in diesem Verzeichnis gelöscht oder verändert werden. Die Möglichkeit, eine Datei zu löschen, ist unabhängig von den Zugriffsrechten, die für die Datei selbst vergeben sind.
|
|
x (execute) |
Der Verzeichnisname kann in einer Pfadangabe erscheinen. Im Endeffekt bedeutet dies, daß man kein Verzeichnis mit dem Kommando cd betreten kann, für das man nicht mindestens das Ausführungsrecht besitzt. Alle Dateien und Verzeichnisse, die unterhalb dieses Verzeichnisses liegen, sind völlig vom Zugang abgeschnitten, sofern hier das Zugriffsrecht "x" fehlt. |
Weitere
Konsequenzen der Rechtevergabe:
Sind
nur r- und w-Verzeichnisrechte vergeben, ist das Wechseln in dieses
Verzeichnis nicht erlaubt.
Da die Shell beim Ausführen von
Programmen stets zuerst in deren Verzeichnis wechselt, ist daher
auch das Ausführen von Programmen in nicht erlaubt.
Das
Anzeigen von Datei- und Verzeichnisinhalten ist jedoch über
eine Pfadangabe möglich, (Bsp. cat /Pfad/Datei, ls /Pfad) da
hierbei die Shell nicht zuerst in das Verzeichnis wechselt.
Benutzer
mit w- Verzeichnisrechten, können in dem jeweiligen Katalog
beliebig Dateien und Unterverzeichnisse löschen, unabhängig
davon welche Rechte den einzelnen Dateien und Unterverzeichnissen
zugeordnet sind.
Gruppenmitgliedern
sollte man nicht das w-Verzeichnisrecht einräumen, da
nur so sichergestellt ist, daß diese im betreffenden
Verzeichnis nichts überschreiben, löschen oder anlegen
können.
Beim
Löschen einer Datei wird diese nicht geöffnet, sondern nur
der entsprechende Verzeichniseintrag gelöscht. Es wird also
nicht der Dateieintrag gesucht, sondern nur der jeweilige
Verzeichniseintrag.
Übung:
Es
existieren die Benutzer anna, willi und emil.
Folgende
Rechte haben diese Benutzer ihren Verzeichissen gegeben:
/home/anna: rwxr-xr-x Gruppe: alpha
/home/willi: rwxr-xr-x Gruppe: alpha
/home/emil: rwxr-x-wx Gruppe: beta
In diesen Vereichnissen befinden sich folgende Dateien mit den jeweiligen Rechten:
Verzeichnis anna: dat-anna : rwxr--r--
Verzeichnis willi: dat-willi : rwxrwxrwx
Verzeichnis emil: dat-emil : rwxrwxrwx
Benutzer anna befindet sich in ihrem Homeverzeichnis und führt folgende Kommandos aus:
|
Kommando |
Ausführbar |
Begründung |
|
ln dat-anna ../willi |
? |
kein w-Recht auf /home/willi |
|
cp ../emil/* . |
? |
r-Other-Recht für die Datei dat-emil |
|
ls /home/emil |
? |
Kein r-Other-Recht für Verzeichnis /home/emil |
|
ls /home/emil/dat-emil |
? |
x-Other-Recht für Datei dat-emil und für das Verz. /home/emil |
|
rm ../willi/dat-willi |
? |
Kein w-Group-Recht für Verzeichnis /home/willi |
|
rm ../emil/* |
? |
w- und x-Other-Recht für das Verz. /Home/emil |
|
chmod u-x ../willw/dat-willi |
? |
Nur der Eigentümer und der Superuser können Rechte ändern |