Copyright © 1995 by O'Reilly/International Thomson Verlag

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches "Linux - Wegweiser zur Installation & Konfiguration", dann klicken Sie hier.


Kapitel 3

Die Dateiberechtigungen

Eigner- und Zugriffsrechte sind zentrale Punkte der Systemsicherheit. Es ist wichtig, daß Sie diese Berechtigungen richtig vergeben -- auch wenn Sie der einzige Benutzer sind -- weil andernfalls merkwürdige Dinge geschehen können. Mit den Dateien, die Benutzer erzeugen und ständig bearbeiten, gibt es in der Regel keine Probleme (trotzdem kann es nicht schaden, wenn Sie die dahinterstehenden Konzepte kennen). Für den Systemverwalter ist die Lage komplizierter. Wenn Sie nur einmal falsche Eigner- oder Zugriffsrechte vergeben, kann das zur Folge haben, daß Sie z.B. Ihre E-Mail nicht mehr lesen können. Im allgemeinen deutet die Meldung:

Permission denied

darauf hin, daß jemand Eigner- und Zugriffsberechtigungen restriktiver als von Ihnen gewünscht vergeben hat.

Die Bedeutung der Eigner- und Zugriffsrechte

Zugriffsrechte geben an, in welcher Weise jemand eine Datei benutzen kann. UNIX kennt drei Stufen der Berechtigung:

Sobald eine Datei erstellt wird, vergibt das System einige Standardberechtigungen, die in den meisten Fällen genügen. So wird z.B. meist Schreibberechntigung für alle anderen Benutzer gelöscht, so daß sie die Datei zwar schreiben und lesen, andere jedoch nur lesen können. Falls Sie einen Grund sehen, besonders vorsichtig zu sein, können Sie das System so einrichten, daß andere Leute überhaupt keine Zugriffsrechte bekommen.

Einige Utilities vergeben Berechtigungen, die von den Defaults abweichen. Wenn z.B. der Compiler ein ausführbares Programm erzeugt, weist er ihm automatisch die Ausführberechtigung zu. Wenn Sie eine Datei aus dem RCS (Revision Control System) herausnehmen, ohne sie vorher gesperrt zu haben, erhalten Sie nur die Leseberechtigung (weil Sie keine Datei ändern sollen). Wenn Sie die Datei aber zunächst sperren, erhalten Sie das Lese- und Schreibrecht (weil Sie die Datei ändern und wieder einfügen sollen). Wir werden das RCS im Abschnitt »Tools für die Versionskontrolle« in Kapitel 6 besprechen.

Es gibt allerdings auch Fälle, in denen die voreingestellten Berechtigungen nicht funktionieren. Wenn Sie z.B. ein Shell-Skript oder ein Perl-Programm schreiben, müssen Sie selbst dafür sorgen, daß das Skript oder Programm ausführbar gemacht wird. Wir werden Ihnen weiter unten in diesem Abschnitt zeigen, wie das geschieht, nachdem wir die grundlegenden Konzepte behandelt haben.

Für Verzeichnisse haben die Zugriffsrechte eine andere Bedeutung:

Machen Sie sich über den Unterschied zwischen Lese- und Ausführberechtigung bei Verzeichnissen keine Gedanken -- im Grunde genommen sind die beiden identisch. Vergeben Sie entweder beide Berechtigungen oder keine.

Beachten Sie, daß Benutzer mit Schreibberechtigung für ein Verzeichnis auch Dateien löschen dürfen; mit der Vergabe der Schreibberechtigung eröffnen Sie dem Benutzer beide Möglichkeiten. Trotzdem gibt es eine Methode, verschiedenen Benutzern den Zugriff auf ein gemeinsames Verzeichnis zu gestatten, ohne daß jeder des anderen Dateien löschen kann. Lesen Sie dazu den Abschnitt » Andere Software aktualisieren « in Kapitel 4 .

Auf einem UNIX-System gibt es weit mehr Dateitypen als die einfachen Dateien und Verzeichnisse, die wir bisher besprochen haben. Das sind z.B. Gerätedateien (device files), Sockets, symbolische Links usw. Jeder Dateityp hat seine eigenen Regeln, aber es ist nicht notwendig, daß Sie alle Details zu jedem Dateityp kennen.

Eigner und Gruppen

Wem werden eigentlich diese Berechtigungen zugestanden? Damit verschiedene Benutzer auf einem System arbeiten können, unterscheidet UNIX bei den Berechtigungen drei Benutzergruppen: Eigner, Gruppe und Sonstige. Die Benutzergruppe »Sonstige« umfaßt alle Benutzer, die Zugang zum System haben aber nicht Eigner oder Mitglied der Gruppe sind.

Die Idee hinter der Einrichtung einer Gruppe ist, daß man z.B. einem Team von Programmierern den Zugang zu einer Datei gewährt. So könnte eine Programmiererin sich selbst die Schreibberechtigung für ihren Quellcode erteilen, während die Mitglieder ihres Teams mittels Gruppenberechtigung den lesenden Zugriff bekommen. Die Benutzergruppe »Sonstige« bekommt vielleicht gar keine Zugriffsrechte. (Glauben Sie wirklich, daß Ihre Programme so gut sind?)

Zu jeder Datei gehören ein Eigner und eine Gruppe. Eigner ist in der Regel der Benutzer, der die Datei angelegt hat. Jeder Benutzer gehört standardmäßig zu einer Gruppe, und diese Gruppe wird jeder Datei zugeordnet, die dieser Benutzer erstellt. Sie können beliebig viele Gruppen einrichten und jeder Benutzer kann mehreren Gruppen angehören. Indem Sie die Gruppe ändern, die einer Datei zugeordnet ist, können Sie einer beliebig zusammengesetzten Gruppe von Benutzern Zugriff auf die Datei gewähren. Wir werden im Abschnitt » Die Datei group « in Kapitel 4 genauer auf die Gruppen eingehen.

Damit haben wir alle Elemente für unsere Sicherheitsvorkehrungen zusammen: drei Arten der Berechtigung (lesen, schreiben, ausführen) und drei Grade bei den Benutzern (Eigner, Gruppe, Sonstige). Lassen Sie uns einen Blick auf die Berechtigungen für einige typische Dateien werfen.

Abbildung 3--2 zeigt ein typisches ausführbares Programm. Wir haben ls mit der Option -l eingegeben, um diese Anzeige zu erzeugen.

Abbildung 3-2. Eignerschaft und Berechtigungen anzeigen

Zwei nützliche Informationen fallen sofort auf: Der Eigner der Datei ist der Autor dieses Buches und Ihr kompetenter Begleiter, mdw, und die Gruppe ist lib (vielleicht ein Team von Programmierern, das Libraries erstellt). Die wirklich wichtigen Informationen über die Berechtigungen sind allerdings in der Buchstabenfolge links in der Anzeige versteckt.

Das erste Zeichen ist ein Bindestrich und zeigt eine normale Datei an. Die nächsten drei Stellen beziehen sich auf den Eigner; wie man erwarten konnte, hat mdw alle drei Berechtigungen. Die folgenden drei Stellen beziehen sich auf die Mitglieder der Gruppe; sie können die Datei lesen (nicht besonders hilfreich bei einer Binärdatei) und ausführen, aber sie haben keinen schreibenden Zugriff, weil das Feld, das ein w enthalten sollte, statt dessen einen Bindestrich aufweist. Die letzten drei Stellen zeigen die Berechtigungen für »Sonstige«; in diesem Fall haben »Sonstige« dieselben Berechtigungen wie die Mitglieder der Gruppe.

Als nächstes Beispiel wollen wir uns eine Datei anschauen, die gesperrt und dann aus dem RCS herausgenommen wurde:

-rw-r--r--   2 mdw      lib           878 Aug  7 19:28 tools.tex

Der einzige Unterschied zu Abbildung 3--2 ist, daß die x jetzt durch Bindestriche ersetzt sind. Niemand braucht eine Ausführberechtigung, weil diese Datei nicht ausgeführt werden kann; sie enthält nur Text.

Als weiteres Beispiel zeigen wir noch ein typisches Verzeichnis:

drwxr-xr-x   2 mdw      lib           512 Jul 17 18:23 perl

An der Stelle ganz links zeigt jetzt ein d an, daß es sich um ein Verzeichnis handelt. Die Ausführberechtigungen sind wieder da, so daß alle Benutzer sich den Inhalt des Verzeichnisses auflisten können.

Dateien können noch andere obskure Zustände annehmen, die wir hier nicht besprechen wollen; lesen Sie die grausigen Details in der Man-Page zu ls nach. Für uns wird es jetzt Zeit, die Eigner- und Zugriffsrechte zu ändern.


Inhaltsverzeichnis Vorherige Abschnitt Nächste Abschnitt