next up previous contents index
Next: Die Dateiattribute des Up: Die ßicherheit'' des Previous: Die ßicherheit'' des

Eigentum und Zugriffsrechte

   

In einem Betriebssystem, das mehrere Anwender zuläßt, taucht die Frage nach der Datensicherheit schneller auf als bei einem Einbenutzersystem. Es sollte möglich sein, Daten vor unberechtigtem Zugriff zu schützen. Dabei sind zum einen die privaten Daten vor fremden Benutzern zu verbergen; zum anderen ist es auch sehr sinnvoll, den Systembereich prinzipiell vor Veränderungen zu schützen. Um ein versehentliches Löschen oder Überschreiben von Dateien zu verhindern, bieten die meisten Betriebssysteme die Möglichkeit des nur-LesenStatus. Dieser Mechanismus reicht im Mehrbenutzersystem nicht aus. Linux bietet deshalb ein dreistufiges System der Zugriffsberechtigung (bzw. Zugriffsbeschränkung) an. Es wird unterschieden zwischen:

Für jede dieser Kategorien kann das Lesen, Schreiben und Ausführen erlaubt und verboten werden.

  Nur dem Eigentümer einer Datei ist es möglich, die Zugriffsrechte zum Lesen, Schreiben und zum Ausführen der Datei beliebig für die drei Benutzerkategorien zu setzen. Wenn der Eigentümer sich selbst das Schreiben in   seine Datei verbietet, ist sie vor versehentlicher Änderung geschützt.gif

  Der Begriff des Eigentümers macht nur Sinn in Verbindung mit der Identifikation jedes Benutzers beim login. Auf diese Weise kann jede Datei eindeutig ihrem Erzeuger zugeordnet werden.

Neben seinem eindeutigen Benutzernamen ist jeder Anwender auch mindestens einer Gruppe zugeordnet. Die Gruppenkennung wird von der Systemverwalterin in der Paßwortdatei zusammen mit dem Benutzernamen abgespeichert. Dieser Gruppe wird die Datei bei ihrer Erzeugung ebenfalls zugeordnet.

  Die Ausführbarkeit macht nur bei binären Programmdateien oder bei Shellscripten Sinn.gif  Beim Versuch, irgendeine andere, nicht ausführbare Datei zur Ausführung zu bringen, wird das Kommando mit einer Fehlermeldung abgebrochen.

Set User ID on Execution

Eine von UNIX geerbte Eigenschaft von Linux eröffnet die Möglichkeit, ein Programm mit den Rechten und Privilegien des Eigentümers oder einer Gruppe auszuführen. Zusätzlich zu den einfachen Zugriffsrechten gibt es im Permissions-Feld zu jeder Datei drei Spezialbits, von denen zwei das Betriebssystem veranlassen bei ausführbaren Dateien zur Laufzeit die Benutzer- bzw. Gruppenrechte zu ändern.

Die Bits heißen ihren Funktionen entsprechend Set User ID (SUID)  bzw. Set Group ID (SGID)  und ändern die Effektive User-ID (EUID) oder die Effektive Group-ID (EGID) eines Benutzers für die Laufzeit des Programms auf die in der Inode der ausführbaren Datei für Eigentümer oder Gruppe gespeicherten Werte.

Beispielsweise setzt das passwd-Kommando zur Laufzeit die EUID auf 0, also die UID der privilegierten Systemverwalterin. Auf diese Weise kann jeder Benutzer sein eigenes Paßwort verändern, ohne selbst Schreibberechtigung für die /etc/passwd Datei zu haben. Das passwd-Programm gilt natürlich als sicheres Kommando und sorgt dafür, daß kein Anwender ein anderes als sein eigenes Paßwort ändern kann.

Die Ausführung eines Programms mit Superuserprivilegien ist ein potentielles Sicherheitsloch, weil es dem Benutzer jeden Systemzugriff erlaubt. Für einige Programme, wie das erwähnte passwd-Kommando oder den X-Server, hat das seine Berechtigung.

Für andere Aufgaben ist es besser, speziellere Methoden zu wählen. Wenn beispielsweise ein Druckerdämon zur Verwaltung des Druckers installiert ist, sollten die Anwender nur über diesen Dämon auf den Drucker zugreifen können (also nicht mit cat direkt darauf drucken können). Dazu muß ein Druckerdämon als ''Benutzerïn der Datei /etc/passwd eingetragen sein und die Gerätedatei dem Druckerdämon und/oder seiner Gruppe gehören. Für alle anderen Benutzer wird die Datei schreibgeschützt. Der Druckerdämon ( lpd) muß dann entweder SUID oder SGID laufen und so dem Benutzer zur Ausführungszeit das Recht geben, in die Gerätedatei zu schreiben.

Auf die gleiche Weise kann den Systembenutzern der Zugriff auf die Floppylaufwerke (z. B. mit mtools) ermöglicht werden. Die Programme der älten'' ps-Suite gehören der speziellen Gruppe mem (memory) und verändern die effektive User-ID, um allen Anwendern den kontrollierten Zugriff auf den Kernelspeicher zu erlauben.

Zugriffsrechte auf Verzeichnisse

Wie bei den Dateien können auch für die Verzeichnisse Zugriffsrechte gesetzt werden. Die Benutzer werden dabei in die gleichen Kategorien eingeteilt wie bei den Dateien. Die Zugriffsrechte werden der Einfachheit halber genauso bezeichnet wie bei Dateien, bedeuten aber:

Set User ID für Verzeichnisse

Wie die einfachen Zugriffsrechte können auch für die Verzeichnisse SUID-, SGID- und Stickybit gesetzt werden. 

Die Bedeutung des SGID-Bits ist naheliegend: vorausgesetzt, ein Anwender darf überhaupt eine Datei in dem entsprechenden Verzeichnis anlegen (das Verzeichnis muß beschreibbar sein), gehört diese Datei nicht der Gruppe des Erzeugers, sondern der Gruppe, der das Verzeichnis gehört. Eine entsprechende Funktion für das SUID-Bit gibt es nicht, weil die Änderung der Eigentumsrechte an einer Datei nur mit Root-Privilegien möglich ist.

Das Stickybit ist nur für ein Verzeichnis relevant und bedeutet hier, daß nur der Eigentümer einer Datei diese auch löschen darf. (Normalerweise kann jeder Benutzer Dateien in einem Verzeichnis löschen, auf das er Schreibzugriff hat.)



next up previous contents index
Next: Die Dateiattribute des Up: Die ßicherheit'' des Previous: Die ßicherheit'' des



Linux Anwenderhandbuch -- Copyright 1993, 1994, 1995 S. Hetze, D. Hohndel, O. Kirch, M. Müller