Unter Linux lassen sich die Rechte an Dateien und Verzeichnissen sehr fein abstimmen, so legen Sie fest, wer was mit welchem Verzeichnis und mit welcher Datei anfangen kann.
Sehen wir uns zu Beginn einmal an, wie man sich die Rechte an Dateien und Verzeichnissen ansieht. Nehmen wir zu Beginn den Dateimanager Dolphin (KDE Plasma):
Sie klicken die Datei oder das Verzeichnis mit der rechten Maustaste an und nutzen Im Kontextmenü den Eintrag „Eigenschaften“ und klicken im sich öffnenden Fenster auf den Reiter „Berechtigungen„.
Oben sehen Sie die Berechtigungen, darunter den Eigentümer der Datei oder des Verzeichnisses.
Dasselbe im Dateimanager Nautilus (GNOME):
Auch hier klicken Sie die Datei oder das Verzeichnis rechts an und wählen die „Eigenschaften„, im sich öffnenden Fenster klicken Sie auf den Eintrag „Zugriffsrechte„.
Dasselbe gilt im Dateimanager Thunar (XFCE), Sie öffnen das Kontextmenü und klicken auf den Eintrag „Eigenschaften“ und öffnen den Reiter „Zugriffsrechte„:
Über den gleichen Weg gelangen Sie an die Zugriffsrechte über den Dateimanager Caja (Mate):
Oder auch über Nemo (Cinnamon):
Auf dem Terminal lassen Sie sich mit Midnight Commander die Rechte anzeigen, indem Sie das Menü „Links / Rechts → Info“ aufrufen:
Eigentlich brauchen Sie jedoch überhaupt keine Software, um sich die Rechte an Dateien anzeigen zu lassen, nutzen Sie einfach auf dem Terminal den Befehl:
ls -l
Um sich auch versteckte Dateien und Verzeichnisse anzeigen zu lassen:
ls -la
Inhaltsverzeichnis
Besitzer und Gruppen
Unter Linux gibt es zwei Gruppen und den Besitzer, mit diesen stimmen Sie die Rechte an Dateien und Verzeichnissen ab. Sehen wir uns die Arten von Gruppen einmal an.
Nehmen wir einmal an, Sie erstellen eine Datei oder ein Verzeichnis – oder Sie laden eine Datei aus dem Internet, oder von einer Digitalen Kamera – in diesem Fall sind Sie der Besitzer der Datei oder des Verzeichnisses. Jetzt sehen wir uns die drei Gruppen einmal näher an:
- Besitzer – der Ersteller einer Datei oder des Verzeichnisses, der Besitzer kann sich selbst als eigene Gruppe zählen – der Besitzer kann natürlich alles, was er will, mit einer Datei oder mit einem Verzeichnis machen
- Gruppe – über die Gruppe legen Sie fest, wer noch was mit einer Datei oder mit einem Verzeichnis anfangen kann
- Alle anderen – dies sind alle anderen nicht genannten, mit dieser Gruppe regeln Sie, was alle anderen mit einer Datei oder mit einem Verzeichnis anstellen dürfen
Rechte an Dateien und Verzeichnissen
Als Besitzer einer Datei oder eines Verzeichnisses können Sie alles damit anfangen. Wir sehen uns diese Rechte jetzt einmal genauer an:
- Anzeigen und ändern – Sie können in ein Verzeichnis einsehen und sehen, was sich darin befindet, dasselbe gilt natürlich auch für Dateien – manche Dateien lassen sich natürlich auch ausführen. Dazu können Sie in einem Verzeichnis neue Dateien / Verzeichnisse anlegen, verändern oder auch löschen
- Anzeigen – Sie können in ein Verzeichnis einsehen, Dateien öffnen – aber nichts verändern, neue Dateien oder Verzeichnisse anlegen oder löschen, jedoch können Sie Dateien ausführen
- Keine Rechte – Sie können in das Verzeichnis nicht einsehen und keine Dateien öffnen, auch nicht ausführen – somit auch keine Dateien ändern, löschen oder anlegen
Rechte am Terminal anzeigen lassen
Auf der grafischen Oberfläche muss man nicht viel sagen – die Angaben sind selbst erklärend. Auf dem Terminal muss man schon etwas genauer hinsehen. Noch einmal zum Befehl, um sich die Rechte an Verzeichnissen und Dateien anzeigen zu lassen:
ls -l
Das ganze einmal auch als Text:
CODE: ALLES AUSWÄHLEN
drwxr-xr-x 7 robertg robertg 4096 28. Nov 03:11 firefox
-rwxr-xr-x 1 robertg robertg 54559936 6. Dez 04:23 qmp3gain-0.9.3-linux-x64.AppImage
-rwxr-xr-x 1 robertg robertg 172044476 2. Dez 20:30 Upscayl-1.5.5.AppImage
Wir sehen in jeder Zeile die Angaben für eine Datei oder ein Verzeichnis. Zu Beginn sehen Sie, ob es sich um ein Verzeichnis oder um eine Datei handelt. Ist das erste Zeichen ein „d“ handelt es sich um ein Verzeichnis, ist es ein Bindestrich „–“ handelt es sich um eine Datei.
Jetzt folgen die eigentlichen Rechte, aufgeteilt in Dreiergruppen – also etwa „rwxr-xr-x„. Die ersten drei Zeichen gelten für den Besitzer, die zweite Gruppe für die Gruppe und die letzte Gruppe sind die Rechte für alle anderen. Sehen wir uns diese Rechte einmal genauer an:
- r – Read – steht für lesen, anzeigen und öffnen
- w – Write – steht für ändern, anlegen (in einem Verzeichnis) und löschen
- x – Execute – steht für ausführen oder auch Zugriff
- – – kein Recht vergeben, darf nicht geöffnet werden, nicht angesehen, es lassen sich keine neuen Dateien / Verzeichnisse anlegen, nicht ausgeführt werden, …
Jetzt könnte es noch ein weiteres Zeichen geben, sehen wir uns beispielsweise einmal das Verzeichnis „/tmp“ an:
ls -ald /tmp
Gleich noch einmal als Text:
drwxrwxrwt 23 root root 16384 8. Dez 09:26 /tmp
Wir sehen hier am Ende der Rechte statt eines „x“ ein „t“ (das „x“ verschwindet nicht, es wird nur in ein „t“ umgewandelt). Es handelt sich hierbei um das sogenannte Sticky Bit – dieses sehen wir uns jetzt etwas genauer an.
Im Verzeichnis „/tmp“ liegen temporäre Dateien aller Benutzer – so gesehen haben alle Benutzer darauf Zugriff. Es besagt ganz einfach – darin befindliche Dateien und Verzeichnisse können nur vom Besitzer gelöscht werden, auch wenn andere darauf Zugriff haben. Fehlt das Zugriffsrecht (kein „x„), wird aus dem kleinen „t“ ein großes „T„.
Dasselbe gilt für „s“ und „S“ – diese Sticky-Bits kümmern sich um Dateien, wie das „t“ und „T“ bei Verzeichnissen. Dies alles sehen wir uns später genauer an.
Nach den Rechten finden Sie den Besitzer der Datei oder des Verzeichnisses, anschließend folgt die Gruppe. Danach kommt die Größe, und das Datum der Erstellung.
Gruppen
Um Rechte zu vergeben, nutzt man unter Linux Gruppen – als Besitzer einer Datei oder eines Verzeichnisses kann man keinem anderen einzelnen Benutzer Rechte daran vergeben, sondern nur einer Gruppe.
Jeder Benutzer ist unter Linux Mitglied einiger Gruppen – jeder Benutzer ist auch selbst eine Gruppe. Lassen wir uns am Terminal einmal anzeigen, zu welchen Gruppen wir gehören:
groups
Welche Gruppen es überhaupt im System gibt zeigt der Befehl:
less /etc/group
Zu Beginn sehen Sie den Gruppennamen, das Recht sich einzuloggen und die Gruppennummer – zuletzt die Mitglieder der Gruppe. Dass es sehr viele Gruppen gibt, soll Sie nicht verwundern, manche sind einfach Systemdienste.
Gruppen erstellen
Wie wir schon gelesen haben, können wir keinem anderen einzelnen Benutzer Rechte an einem eigenen Verzeichnis oder an einer Datei vergeben – man würde ganz einfach selbst die Rechte an der Datei oder des Verzeichnisses verlieren. Man vergibt Rechte über Gruppen.
Ich nehme jetzt einfach einmal an, ich habe in meinem Home-Verzeichnis ein Verzeichnis namens „Software„. Dieses möchte ich mit einem anderen Benutzer des Systems teilen. Dazu erstellt man einfach eine neue Gruppe. Diese Gruppe nenne ich jetzt einfach einmal „software“ – die Gruppe darf natürlich nicht schon bestehen, dies gelingt als root mit dem Befehl:
groupadd software
Sie können sich am Terminal nun ansehen – die neue Gruppe wurde erstellt:
Benutzern Gruppen zuweisen
Wie wir schon gelesen haben, können wir anderen Benutzern über Gruppen Rechte an unseren eigenen Dateien und Verzeichnissen zuweisen. Dazu müssen diese Benutzer natürlich auch Mitglieder der jeweiligen Gruppe sein. Mit folgendem Befehl lassen Sie sich die Gruppen anderer Benutzer anzeigen:
groups benutzer
Jetzt möchte ich den Benutzer „katarina“ zur Gruppe „software“ hinzufügen – dies gelingt natürlich nur mit root-Rechten am Terminal:
usermod -aG software katarina
Die Option „G
“ fügt einen Benutzer einer Gruppe hinzu – absolut wichtig – nutzen Sie die Option „G
“ niemals ohne die Option „a
“ – ansonsten wird der Benutzer zwar der neuen Gruppe hinzugefügt, aus allen anderen, in denen er jedoch gerade ist, entfernt.
Dateien und Verzeichnisse einer Gruppe übergeben
Erst einmal wichtig – auch wenn Sie nur eine einzelne Datei in einem Verzeichnis einer Gruppe zuweisen wollen, Sie müssen auch das Verzeichnis der Gruppe zugänglich machen.
Ich möchte jetzt das Verzeichnis „Software“ der Gruppe „software“ zuweisen – im Dateimanager Dolphin – man öffnet das Kontextmenü des Verzeichnisses, oder der Datei und wählt „Eigenschaften → Berechtigungen:
Hier klicken Sie auf den Schalter „Erweiterte Berechtigungen„, klickt im nächsten Fenster auf „Hinzufügen„. Es folgt die „Benannte Gruppe“ – hier wählt man die gewünschte Gruppe.
Auch wenn Sie das Verzeichnis oder die Datei einer Gruppe zuweisen, Sie sind natürlich noch immer der Besitzer und können die Zugangsberechtigungen anpassen.
Unter anderen Dateimanagern ist dies derzeit nicht möglich.
Am Terminal gelingt dies nun ganz einfach mit dem Befehl:
chown -cR besitzer:gruppe Software/
Zu Beginn gibt man den Besitzer an – der ist man natürlich selbst, es folgt die Gruppe und zuletzt das Verzeichnis – im Beispiel:
chown -cR robert:software Software/
Oder für die Datei „dateiname.txt„:
chown -c robert:software dateiname.txt
Was darf was mit welcher Datei anfangen?
Wir können jetzt Daten – also Verzeichnisse und Dateien, mit anderen Benutzern teilen, was noch fehlt ist – wir legen fest, was welcher Benutzer mit welcher Datei / mit welchem Verzeichnis anstellen darf.
Grafisch gelingt dies bei allen genannten Dateimanagern auf dieselbe Weise. Wir haben ganz zu Beginn schon gesehen, wie man sich die Rechte an Verzeichnissen und Dateien ansieht. Auf dieselbe Arte gelingt auch das Vergeben von Rechten. Darum werde ich dies hier nur mit dem Dateimanager Dolphin zeigen:
Sie öffnen wie üblich die Eigenschaften einer Datei oder eines Verzeichnisses und öffnen den Reiter „Berechtigungen / Zugriffsrechte„.
Hier sehen Sie nicht nur die aktuellen Rechte, sondern auch die der anderen Benutzer. Mit den jeweiligen Schaltern passen Sie jetzt die Rechte an:
Auf dem Terminal gehen Sie etwas umständlicher vor. Wie wir schon gesehen haben, können wir mit dem Befehl:
chown
Dateien und Verzeichnisse an andere Gruppen übergeben – um die Rechte an Dateien und Verzeichnissen anzupassen, nutzen wir stattdessen den Befehl:
chmod
Um die Rechte auf dem Terminal anzupassen, geben wir die Gruppen an – für die wir die Rechte verändern möchten:
- u – für den Besitzer der Datei / des Verzeichnisses
- g – die Gruppe der Datei / des Verzeichnisses
- o – für andere Benutzer
- a – für alle Benutzer
Wollen wir einmal die Datei „dateiname.bin“ für alle Benutzer ausführbar machen:
chmod a+x dateiname.bin
Jetzt möchte ich die Datei „dateiname.odt“ nur für mich und für die Gruppe lesbar und veränderbar machen:
chomd ug+w dateiname.odt
Andere Benutzer dürfen die Datei dafür nur lesen (öffnen):
chmod o+r dateiname.odt
Wie wir sehen, mit dem Plus (+) fügen wir Rechte hinzu, mit dem Minus (–) können wir Rechte natürlich auch wieder entziehen. Wollen wir der Gruppe das Recht für Änderungen entziehen und allen anderen das Recht zu lesen entziehen:
chmod g-w dateiname.odt
chmod o-r dateiname.odt
Um die Rechte für ein komplettes Verzeichnis anzupassen, nutzen Sie zusätzlich die Option „-R
“ – etwa:
chmod -R go-rwx Dokumente/
Hiermit wird allen Benutzern, auch der Gruppe alle Rechte auf das Verzeichnis „Dokumente“ entzogen, niemand außer der Besitzer selbst kann einsehen – oder was auch immer.
Eine weitere Möglichkeit Rechte zu vergeben ist die oktale Schreibweise – folgende Ziffern stehen für die Rechte:
- 0 – keine Rechte
- 1 – x
- 2 – w
- 3 – w+x
- 4 – r
- 5 – r+x
- 6 – r+w
- 7 – r+w+x
Wollen wir das letzte Beispiel in oktaler Schreibweise ausführen:
chmod -R 700 Dokumente/
Es ist recht einfach zu verstehen, wir fügen keine Rechte hinzu oder entfernen solche. Wir geben ganz einfach an, welche Rechte welcher Benutzer hat. Die erste Ziffer steht für den Besitzer – hier die „7“ – dieser darf mit dem Verzeichnis alles anfangen (rwx). Die zweite Ziffer steht für die Gruppe – hier die „0“ – keine Rechte, genauso wie die letzte Ziffer für alle anderen nicht genannten Benutzer steht.
Eine Reaktion
[…] können wir beispielsweise, wie unter Rechte an Dateien und Verzeichnissen unter Linux beschrieben, eine neue Gruppe namens “admin” anlegen (die Gruppe können Sie […]