[Zurück] [Home] [Weiter]       http://rowa.giso.de  

Eine frei verwendbare Unix-Grundlagenschulung mit muLinux

Zugriffsrechte, Dateieigenschaften

Wenn mehrere Benutzer gleichzeitig auf einem System arbeiten können, muß es ein Rechtekonzept für Prozesse, Dateien und Verzeichnisse geben, damit Benutzer A nicht Dateien von Benutzer B ändern kann.

Leider war für die Nutzerverwaltung unter muLinux kein Platz mehr auf dem Ein-Floppy-System. Einige Merkmale sind aber doch vorhanden.

Die Datei /etc/passwd

Alle zugelassenen Benutzer sind in der Datei /etc/passwd gespeichert. Bevor ein neuer Nutzer Zugang zum System erhält, muß er vom Superuser hier eingetragen werden. Die Datei /etc/passwd ist, wie alle Dateien im Verzeichnis /etc, eine Textdatei (ASCII). Zum Betrachten von ASCII-Dateien dient der Befehl cat:

/# cat /etc/passwd

Wir hätten auch mit folgender Befehlsfolge diese Datei auf dem Bildschirm ausgegeben:

/# cd /etc
/etc# cat passwd

OK, nun zum Inhalt der Datei /etc/passwd. Für jeden zugelassenen Nutzer existiert eine Zeile in dieser Datei. Dieser Datensatz umfaßt mehrere durch einen Doppelpunkt voneinander getrennte Felder.

Das erste Feld beinhaltet den Login-Namen des Nutzers. Wir haben uns als Superuser mit root angemeldet und tatsächlich gibt es einen solchen Nutzer hier. Es gibt aber auch Nutzernamen, die nicht eine menschliche Person darstellen. Viele Prozesse unter Unix erfordern spezielle Nutzernamen mit definierten Rechten.

Das zweite Feld beinhaltet das verschlüsselte Paßwort des Nutzers. Unter muLinux ist standardmäßig nur der Nutzer craxi mit einem Paßwort eingetragen. Allerdings hat es hier, wie gesagt, keine Bedeutung. Existiert kein Paßwort ist kein Zeichen zwischen dem ersten und zweiten Doppelpunkt vorhanden. Befindet sich dort ein Stern, so wird bei dieser Unix-Version, das Paßwort in der Datei /etc/shadow gespeichert. Man kann mit einem Texteditor das verschlüsselte Paßwort löschen, vorausgesetzt man besitzt schreibende Zugriffsrechte auf diese Datei. Danach ist ein Einloggen ohne Password für diesen Nutzer möglich.

Zwischen dem nächsten Doppelpunkten steht die Nutzernummer (UID: User-Identifikation-Deskriptor). Jeder Nutzer erhält vom System eine eindeutige Nummer. Der Nutzer root hat immer 0 als UID.

Danach kommt die Gruppennummer (GID: Group-Identifikation-Deskriptor). Nutzer einer Gruppe können mehr Zugriffsrechte auf gemeinsam genutzte Dateien und Verzeichnisse erhalten.

Das nächste Feld stellt ein Kommentarfeld dar. Hier kann der vollständige Name, Telefonnummer usw. eingetragen werden. Diese Informationen können aber möglicherweise via Internet abgefragt werden.

Nun folgt die Angabe des Heimatverzeichnisses. Diese Verzeichnis wird, mit Ausnahme des Nutzers root, im Verzeichnis /home abgelegt.

Als letztes Feld finden wir das Startprogramm. Es wird beim Einloggen des Nutzers gestartet und ist meist eine sogenannte Shell. Das ist das Programm, daß die Befehlseingabe ermöglicht.

Dateieigenschaften

Jede Datei und jedes Verzeichnis ist genau einem Nutzer (engl. user) und einer Gruppe (engl. group) zugeordnet. Jede Datei sind Berechtigungen für den Besitzer, die Gruppe und alle Anderen (engl. other) fest zugeordnet. Dies sind Dateieigenschaften und diese können nur vom Besitzer, meist dem Erzeuger, geändert werden. Eine Ausnahme ist der Superuser der alles darf.

Es werden jeweils Schreib-, Lese- und Ausführungsrechte vergeben für den Eigentümer, der Gruppe und den Anderen. Anhand dieser Berechtigungen ist somit festgelegt, wer eine Datei lesen, schreiben oder ausführen darf.

Zur Anzeige dieser Dateieigenschaften müssen wir den Befehl ls mit der Option -l (lange Ausgabe mit ausführlichen Informationen):

/# cd /
/# ls -l
 total 25
drwxr-xr-x   2 craxi    psi          1024 Jun 17  1998 a/
drwxr-xr-x   2 craxi    psi          2048 Apr 29 13:41 bin/
drwxr-xr-x   2 craxi    psi          1024 Nov 21  1998 c/
drwxr-xr-x   2 craxi    psi          1024 Mar 16  1998 cdrom/
drwxr-xr-x   2 craxi    psi          3072 May 24 22:37 dev/
drwxr-xr-x   4 craxi    psi          1024 Oct 24 07:54 etc/
drwxr-xr-x   4 craxi    psi          1024 Oct 26  1998 home/
drwxr-xr-x   2 craxi    psi          1024 Dec  8  1998 lib/
-rwxr-xr-x   1 craxi    psi          2341 May 17 15:25 linuxrc*
drwxr-xr-x   3 craxi    psi          1024 Oct  7  1998 mnt/
drwxr-xr-x   2 craxi    psi          1024 Jun 17  1998 nfs/
dr-xr-xr-x   5 root     root            0 Oct 24 07:54 proc/
drwxr-xr-x   2 craxi    psi          1024 Oct 30  1998 root/
drwxr-xr-x   2 craxi    psi          1024 Jan 15  1999 samba/
drwxr-xr-x   2 craxi    psi          1024 Sep 16  1998 sbin/
drwxr-xr-x   4 craxi    psi          1024 Nov 12  1998 setup/
drwxr-xr-x   2 root     root         1024 Oct 24 07:48 startup/
drwxr-xr-x   2 root     root         1024 Mar 20  1999 swap/
drwxrwxrwx   3 root     root         1024 Oct 24 14:10 tmp/
drwxr-xr-x  13 root     root         1024 May 24 22:36 usr/
drwxr-xr-x  10 craxi    psi          1024 Nov 21  1998 var/
                                                       |
                                          |            Dateiename
                                     |    Datum der letzten Modifikation
                        |            Länge in Byte
              |         Gruppe des Eigentümers
            | Eigentümer
 |          Anzahl der Links (dazu später)
 Zugriffsrechte (siehe unten)
|
Art der Datei:
d Verzeichnis (engl. directory)
- normale Datei
b,c Gerätedateien im Verzeichnis /dev (siehe dort)
l Link (Verweis) auf eine andere Datei

Wie wir sehen hat jede Datei oder jedes Verzeichnis einen Eigentümer und ist einer Gruppe zugeordnet. Hier bei muLinux entspricht die Zuordnung aus den schon genannten Gründen nicht dem Standard. Betrachten wir uns die Zugriffsrechte genauer. Sie besteht aus 9 Zeichen:

rwxrwxrwx

Wobei es eigentlich drei Tripel mit jeweils den Zeichen rwx sind. Anstelle eines Buchstaben kann aber auch ein Bindestrich - stehen.

r Leseberechtigung (engl. read)
w Schreibberechtigung (engl. write)
x Berechtigung zum Ausführen (engl. execute) Programmen oder Skripten bzw. das Öffnen von Verzeichnissen

Sind die jeweiligen Berechtigungen gesetzt, erscheint der entsprechende Buchstabe, ansonsten erscheint ein Bindestrich.

Die drei Tripel stellen die Zugriffsrechte für den Eigentümer (user), der Gruppe (group) und den Anderen (other) dar. Hier ein Beispiel:

rw-r-----

Eine Datei mit solchen Zugriffsrechten kann vom Eigentümer gelesen und geschrieben/geändert werden. Alle Mitglieder der Gruppe können die Datei lesen. Alle anderen können weder die Datei lesen noch ändern. Auszuführen ist sie überhaupt nicht.

Verändern von Zugriffsrechten

Die Zugriffsrechte können nur vom Eigentümer der Datei oder vom Superuser geändert werden. Dafür wird das Kommando chmod (change modus) verwendet. In der einfachsten Form lautet der Aufruf

#/ chmod zugriffssymbol datei-/verzeichnisname

Um für ein Tripel die Zugriffsrechte zu ändern muß beim Zugriffssymbol diese zunächst angegeben werden. Also u, g oder o (user, group oder other). Danach folgt einer der beiden Operationszeichen + zum Setzen oder - zum Rücksetzen eines Attributs. Zum Schluß wird mit einem der Buchstaben r, w oder x angegeben welches Attribut geändert werden soll.

Wir betrachten folgendes Beispiel:

#/ chmod o-r /a

Für das Verzeichnis /a wird die Leseberechtigung für Nutzer, die nicht in meiner Gruppe sind, aufgehoben. Den Anderen ist es also nicht möglich dieses Verzeichnis zu lesen. Dummerweise können wir das mit muLinux nicht testen, da wir hier immer Superuser sind. Zumindest sehen wir mit dem wiederholten Befehlsaufruf (Cursortaste nach oben) von ls -l eine Änderung.

/# ls -l
 total 25
drwxr-x--x   2 craxi    psi          1024 Jun 17  1998 a/
...
Jetzt wollen wir der Gruppe auch den Schreibzugriff erlauben:

#/ chmod g+w /a

/# ls -l
 total 25
drwxrwx--x   2 craxi    psi          1024 Jun 17  1998 a/
...

Das war also unser erster kleiner Einblick in die Sicherheitsprinzipien von Unix. Diese Prinzipien sind von Anfang an fester Bestandteil des System und sind nicht etwas nachträglich Zugefügtes wie bei manch anderen Betriebsystem. Damit ist Unix nicht nur sicherer gegen virtuelle Einbrecher in das System, sondern auch Viren können sich nicht so einfach in Unix-System verbreiten.

Bei Unix bzw. Linux besteht praktisch keine Virengefahr.

[Zurück] [Home] [Weiter]