2227323

Linux-Besitz-, Lese- und Schreibrechte optimal nutzen

17.10.2016 | 12:39 Uhr |

Linux ist als Mehrbenutzersystem konzipiert. Die Rechte im Dateisystem spielen daher eine große Rolle – als Schutz vor den neugierigen Blicken anderer Benutzer und wichtiger noch vor Schadsoftware.

Die Rechtevergabe im Dateisystem ist ein wichtiger Bestandteil des Linux-Sicherheitskonzepts. Linux-Nutzer, aber auch Dienste wie Web-oder FTP-Server sollen nur in den wirklich nötigen Bereichen Dateien erstellen oder ändern dürfen. Damit die Sicherheit erhalten bleibt, sollten Sie die grundlegenden Prinzipien des Berechtigungssystems kennen.

Eigentümer, Gruppen und Rechte

Das Rechtesystem von Linux ist relativ einfach und überschaubar. Eine Datei oder ein Ordner kann nur einem einzigen Benutzer („Eigentümer“) und nur einer Gruppe gehören. Für beide lässt sich das Lese-und Schreibrecht getrennt festlegen. Zudem gibt es das Recht „Ausführen“. Ist es bei einer Datei gesetzt, darf ein Benutzer sie als Programm starten. Bei Ordnern gewährt es die Berechtigung, ihn zu öffnen und den Inhalt anzusehen. Außerdem lassen sich Rechte für „andere“ festlegen. Damit sind Zugriffe gemeint, die weder vom Eigentümer noch von der Gruppe aus erfolgen. Es lassen sich daher insgesamt neun Zugriffsrechte vergeben: „Lesen“, „Schreiben“ und „Ausführen/Durchsuchen“ jeweils für den Eigentümer, die Gruppe und für andere Benutzer.

Lesetipp: Die 10 wichtigsten Linux-Befehle für Netzwerk und Internet

Die Rechte für Ordner wirken sich indirekt auch auf die darunter liegenden Ordner aus. Wenn Sie „Ausführen/Durchsuchen“ verbieten, gilt das auch für die darunter liegenden Ordner. Es gibt eine Besonderheit: Ist „Ausführen/Durchsuchen“ bei einem Ordner erlaubt, aber „Lesen“ nicht, kann ein anderer Benutzer eine darin liegende Datei öffnen, wenn ihm der Pfad beziehungsweise Dateiname bekannt ist.

Unter Ubuntu können Benutzer auf den Inhalt anderer Home-Verzeichnisse zugreifen.
Vergrößern Unter Ubuntu können Benutzer auf den Inhalt anderer Home-Verzeichnisse zugreifen.

Für sehr spezielle Einsatzbereiche lassen sich noch drei zusätzliche Sonderrechte festlegen. Das Set-UID-Recht und Set-GID-Recht bewirken, dass eine ausführbare Datei immer mit den Rechten des Besitzers beziehungsweise der Gruppe läuft, egal wer sie startet. Das kommt beispielsweise beim Programm sudo zum Einsatz. Der Eigentümer ist der administrative Benutzer „root“, mit dessen Rechten es startet, auch wenn ein nicht-privilegierter Benutzer es aufruft. Es liegt dann beim Programm zu prüfen, ob der Benutzer das Recht dazu hat. sudo verwendet dafür die Datei „/etc/sudoers“, in der etwa bei Ubuntu-Systemen die Rechte dem Benutzer „root“ und den Gruppen „admin“ sowie „sudo“ eingeräumt werden. Grundsätzlich sollten Sie beide Rechte nicht selbst ändern, vor allem bei Dateien, die „root“ gehören. Es sei denn, Sie wissen genau, dass das Programm die Prüfung für eine erhöhte Berechtigung ordnungsgemäß durchführt.

Das dritte Sonderrecht heißt „Stick-Bit“. Es wird beispielsweise für den Ordner „/tmp“ verwendet. Ist es bei einem Ordner gesetzt, kann nur der Besitzer die darin enthaltenen Elemente ändern oder löschen.

Benutzerrechte über den Dateimanager setzen

Welche Rechte für Ordner und Dateien gelten, lässt sich über einen Dateimanager wie Nautilus ermitteln. Wählen Sie eine Datei oder einen Ordner mit der rechten Maustaste aus, gehen Sie im Menü auf „Eigenschaften“ und dann auf die Registerkarte „Zugriffsrechte“. Hinter „Zugriff“ können Sie die Rechte für „Besitzer“, „Gruppe“ und „Andere“ festlegen, außerdem lässt sich die Gruppe ändern. Standardmäßig sind Gruppe und Benutzer im Home-Verzeichnis identisch.

Per Klick auf die Schaltfläche „Zugriffsrechte der enthaltenen Dateien ändern“ lassen sich bei Ordnern die Rechte rekursiv für alle enthaltenen Elemente setzen. Anders als die Beschriftung vermuten lässt, gelten die Änderungen auch für den Ordner, für den Sie „Eigenschaften“ aufgerufen haben. Sie werden bemerken, dass bei Ubuntu die Rechte für „Andere“ mit „Auf Dateien zugreifen“ eingestellt ist. Andere Benutzer können daher den Inhalt fremder Home-Verzeichnisse einsehen und Dateien darin öffnen, aber nicht ändern. Wenn Sie das nicht möchten, setzen Sie für Ihr Benutzerverzeichnis unter „/home“ die Rechte für „Andere“ hinter „Zugriff“ auf „Keiner“. Das gilt dann auch für alle Unterverzeichnisse.

Auch interessant: Diese Linux Software sollte auf Ihrem PC nicht fehlen

Tools für die Kommandozeile verwenden

Als Administrator eines Linux-Systems werden Sie für die Rechtevergabe das Terminal bevorzugen. Mit chown ändern Sie den Besitzer von Dateisystemobjekten:

chown -R www-data:www-data /var/www/wordpress

Der Parameter „-R“ steht für rekursiv. Damit wirkt sich der Befehl auf alle enthaltenen Ordner und Dateien aus. Dahinter stehen der neue Besitzer und die Gruppe für den angegebenen Ordner. Die Befehlszeile aus dem Beispiel verwenden Sie, wenn Sie einen Webserver betreiben und das Blogsystem Wordpress nach „/var/www/wordpress“ kopiert haben.

Der Apache-Server läuft unter Ubuntu und Debian mit der Benutzerkennung „www-data“, der zur gleichnamigen Gruppe gehört. Indem Sie den Besitz aller Ordner und Dateien an „www-data“ übertragen, haben Apache und damit auch Wordpress das Recht, hier Konfigurationsdateien zu erzeugen und Dateien zu erstellen. Das ist für die Erstkonfiguration und auch für Dateiuploads nötig.

Mit dem Tool stat lassen Sie sich anzeigen, welche Zugriffsrechte vergeben sind.
Vergrößern Mit dem Tool stat lassen Sie sich anzeigen, welche Zugriffsrechte vergeben sind.

Sensible Dateien sollten Sie danach schützen, indem Sie Rechte wieder entziehen. Die Wordpress-Konfigurationsdatei „wp-config.php“ sollten mögliche Angreifer nicht manipulieren dürfen. Dem Server genügt der Lesezugriff, wenn Wordpress eingerichtet ist:

chmod a-w /var/www/wordpress/wp-config.php
chmod go-r /var/www/wordpress/wp-config.php

Parameter „a“ bezieht sich auf „Alle“, also auf den Besitzer, die Gruppe und andere Benutzer. „-w“ entzieht das Schreibrecht. In der zweiten Zeile entfernen Sie das Recht „Lesen“ für die Gruppe und andere Benutzer. Es bleibt nur das Leserecht für den Eigentümer übrig. Die möglichen Angaben bei chmod sind „u“ für den Eigentümer, „g“ für die Gruppe und „o“ für andere. Diese kombinieren Sie mit den Rechten „r“ (Lesen), „w“ (Schreiben) und „x“ (Ausführen/Durchsuchen). Ein „-“ entfernt das Recht, „+“ fügt es hinzu und „=“ setzt die Rechte neu. Damit Sie nicht zwei Befehlszeilen verwenden müssen, empfiehlt sich die oktale Schreibweise:

chmod 400 /var/www/wordpress/wp-config.php

Der Wert „4“ steht für „Lesen“ und „0“ für keine Rechte. Die erste Stelle bezieht sich auf den Eigentümer, die zweite auf die Gruppe und die dritte auf andere Benutzer. Verwenden Sie den Wert „600“, um dem Eigentümer wieder Schreibrechte zu gewähren. Eine Übersicht mit der Bedeutung der numerischen Werte finden Sie über https://de.wikipedia.org/wiki/Chmod .

In einem Terminalfenster können Sie prüfen, welche Rechte für Dateien und Ordner gelten. Die gesetzten Rechte in einem Ordner prüfen Sie mit

ls -al /var/www/wordpress

ls zeigt die Rechte in der ersten Spalte mit „r“, „w“ und „x“ (Lesen, Schreiben, Ausführen) in der Reihenfolge Eigentümer, Gruppe und andere an. Um sich die Rechte zusätzlich in oktaler Schreibweise anzeigen zu lassen, verwenden Sie diese Befehlszeile:

stat -c '%A %a %U %G %n' /var/www/wordpress/*

Informationen zu einer einzelnen Datei lassen Sie sich mit stat <Dateiname> ausgeben.

0 Kommentare zu diesem Artikel
2227323