Dateien
Zugriffsrechte und Datenschutz
Datenschutzproblem:
- Nur Berechtigte sollen bestimmte Informationen (in Dateien gespeichert)
lesen bzw. modifizieren können.
- Schutz vor unbeabsichtigen Modifikation (Viren !)
PC-Konzept: Auf einem persönlichen Computer braucht man keine Schutzmechanismen (die ja auch nicht um sonst zu haben sind), da man externe Sicherhitsmaßnahmen ergreift (Kämmerchen abschließen !)
Dieses Konzept taugt heute z.Z. des Internets und der Vernetzung nicht mehr.
Auch auf einem Mehrbenutzersystem (selbst Familien-Computer) ist dieses fragwürdig.
Einfaches Konzept in UNIX
Begriffe:
- Der Eigentümer,Nutzer(engl. user) wird als uid (Integer) representiert. /etc/passwd
- Gruppe (engl. group): Verschiedene Nutzer werden in Gruppen zusammengefasst. Eine
Gruppe wird als gid. Ein Nutzer kann in verschiedenen Gruppen sein, was in /etc/group festgelegt wird.
Daneben gibt es den Rest der Welt (engl. others), den auch Rechte zugestanden werden können.
Auf ein Objekt (Datei,Verzeichnis und anderes) gibt 3 Rechte:
- lesen(engl. Read)
- schreiben (engl. Write)
- ausführen (engl. eXecute)
Letzeres heißt bei einer Datei, daß sie ein ausführbares Programm oder ein Script eines Interpreters ist. Bei einem Verzeichnis bedeutes dieses recht,
daß man hineinnavigieren darf (Such-Recht).
Im Inode wird in einem (unsigned short) Integer-Wert festgehalten.
Da es nun 3 Rechte gibt, wird dieser Wert in 3-ergruppen aufgeteilt.
Damit ist das oktale Zahlensystem (Basis 8) sehr gut zur Beschreibung geeignet.
Um das ganze für den Nutzer noch schöner zu machen, verwenden verschiende Programme folgende Schreibweise:
uuugggooo u=Rechte des Eigentümers g=Rechte der Gruppe o=rechte der Welt
rwxrwxrwx r=lesen w=schreiben x=ausführen
Beispiel:
ls -l /etc/passwd
liefert:
-rw-r--r-- 1 root root 1147 May 7 14:18 /etc/passwd
Das erste Zeichen kennzeichnet den Typ des Eintrags:
- - : gewöhnliche Datei
- d : Verzeichnis
- p : named Pipe
- s : unix-Domain-Socket
- c : Charakter Device
- b : Blockdevice
Ein Prozeß hat konzeptionell eine uid,und eine gid.
So kann der Betriebssystemkern entscheiden, ob Zugriff gewährt wird oder nicht.
Für die Vergabe (einschließlich Änderungen) ist der Eigentümer der Datei verantwortlich.
Superuser, auch manchmal Supervisor oder in UNIX root (deutsch:
Wurzel, eigentlich nur bayrisch als Wurzelsepp nett; manche Alice Schwarzer Jünferinnen und Softies wollen eine Superuserin auch den Nutzerinnamen "ruth" geben)
hat die Sonderrechte, und kann den Eigentümer sowie die Dateien ändern, er darf alles.
(Auf einem PC-Betriebssystem ist jeder Superuser !)
Problem: Manchmal soll der Aufrufer eines (vertrauenswürdeigen) Programm für
die Aufrufszeit Rechte haben (Bsp: CGI beim WWW-Dienst des Internets).
Dazu gibt es die sog. S-Bits. Der Prozeß bekommt dann die effektiven
Rechte des Eigentümers der Programmdatei oder der der Gruppe.
In oben erleuterte Schreibweise wird dann x durch s ersetzt.
S-Bit der Welt gibt es nicht, das wird anders verwendet (Bildungslücke !)
Kommandos
chmod(1): Ändert Rechte
chown(1): Ändert Eigentümer (nur für Superuser)
chgrp(1): Ändert Gruppenrecht
Operationen
chmod(2)
chown(2)
Ausblick
Andere (hoffentlich die der Banken) haben wesentlich ein wesentliches Ausgefeilteres Schutzkonzept.
Mechanismen:
- Capability: Zeiger auf ein Objekt mit Rechten (HYDRA!)
(deutsch: Zugriffsausweis)
Informatik- und Netzwerkverein Ravensburg e.V
Rudolf Weber