Wer zum ersten Mal von Windows auf Linux umsteigt, muss sich zunächst daran gewöhnen, dass er nicht mehr alles darf. Es gibt Verzeichnisse und Programme, die nur der Systemadministrator lesen und ausführen darf, andere Verzeichnisse und Dateien dürfen normale Nutzer zwar lesen und kopieren, aber das Original nicht verändern oder löschen.
Wer darf was?
Das Linux-Rechtesystem stammt noch aus den Anfängen der Unix-Zeit und beschränkt sich auf drei verschiedene Handlungsrechte:
- lesen (read,
r) - schreiben (write,
w) - ausführen (execute,
x)
Da sich über diese drei Rechte zwar die Frage des "was" klären lässt, aber nicht "wer", unterscheidet Linux zudem zwischen drei Besitzerrechten:
- Eigentümer (user,
u) - Gruppe (group,
g) - Alle anderen (others,
o)
Für jedes Besitzerrecht lässt sich individuell festlegen, welche Handlungsrechte dazugehören. Die Tabelle "Zugriffsrechte" verdeutlicht dies anhand einer Matrix.
Zugriffsrechte
| lesen | schreiben | ausführen | |
| Eigentümer | r-- — — | -w- — — | --x — — |
| Gruppe | — r-- — | — -w- — | — --x — |
| Alle Anderen | — — -r- | — — -w- | — — --x |
Aus der Kombination der sechs Eigenschaften und verschiedenen Nutzergruppen lassen sich praktisch beliebig viele Zugriffsrechte festlegen. Öffnen Sie zum Beispiel über [Alt]+[F2] und den Befehl konsole das KDE-Terminalfenster und geben hier den Befehl ls -l ein, dann sehen Sie eine Ausgabe aller Dateien und Ordner Ihres Home-Verzeichnisses.
Zu Beginn jeder Zeile stehen die Rechte. Der Eintrag -rw-rw-r-- bedeutet zum Beispiel, dass der Eigentümer und alle Mitglieder der Gruppe, zu der die Datei gehört, die Datei lesen und (über-)schreiben dürfen, alle anderen dürfen die Datei nur lesen. Auch in den meisten grafischen Dateimangern können Sie sich die Rechte anzeigen lassen. In Dolphin (Abbildung 1) finden Sie die passenden Einstellungen unter AnsichtZusatzinformationen.
Eine kleine Ausnahme im Rechteschema nehmen die Verzeichnisse ein: Hier steht das x für die Erlaubnis, das Verzeichnis betreten zu dürfen und sich die Inhalte des Verzeichnisses anzuschauen. Verzeichnisse erkennen Sie zudem am führenden d bei der Ausgabe von ls -l, zum Beispiel drwxr-xr-x.
Rechte vergeben
Wie die meisten Linux-Aufgaben lässt sich auch das Rechtemanagement auf der Kommandozeile oder mit grafischen Tools vornehmen. Möchten Sie zum Beispiel Ihr Home-Verzeichnis so einrichten, dass sich darin außer Ihnen (und root) niemand umschauen darf, klicken Sie zum Beispiel in Konqueror oder Dolphin mit der rechten Maustaste auf das Home-Verzeichnis und wählen Eigenschaften. Auf dem Reiter Berechtigungen richten Sie dann über die Dropdown-Liste für Gruppe und Sonstige den Eintrag Unzulässig ein (Abbildung 2).
Auf der Kommandozeile hilft der Befehl chmod beim Einrichten der Benutzerrechte. Möchte der Benutzer marcel wie in obigem Beispiel dem Home-Verzeichnis sämtliche Rechte (außer den eigenen) entziehen, genügt dazu folgender Befehl:
$ chmod go-rx /home/marcel
Ein ls -ld /home/marcel zeigt daraufhin die Ausgabe drwx------ an. Um allen Nutzern Schreibrechte auf die Datei wichtig.txt zuzuteilen, müssten Sie folglich den Befehl chmod ugo+w wichtig.txt aufrufen. Dafür gibt es eine abgekürzte Schreibweise:
$ chmod a+w wichtig.txt
Achten Sie darauf, dass sich der Chmod-Befehl ohne Angabe der Nutzergruppe (zum Beispiel chmod +w datei.txt) nur auf den Eigentümer bezieht. Ein chmod -w geheim.txt entzieht somit nur Ihnen selbst die Schreibrechte. Um eine Datei in den Read-only-Modus zu versetzen, nutzen Sie besser chmod a-w geheim.txt.
Computer arbeiten bekanntlich nicht mit Buchstaben, sondern mit Zahlen. Anstelle der Buchstaben rwx können Sie auch die Zahlen 4, 2, 1 und 0 verwenden. Null bedeutet keine Rechte, 1 setzt das Ausführrecht, 2 das Schreibrecht und 4 das Leserecht. Der Befehl
$ chmod 444 wichtig.txt
setzt somit die Datei wichtig.txt in den Read-only-Modus, ein chmod 644 datei.txt erlaubt dem Besitzer das Lesen und Schreiben, der Gruppe und den übrigen Nutzern nur das Lesen und so weiter. Möchten Sie die Rechte rekursive also in sämtlichen Unterverzeichnissen ändern, rufen Sie chmod mit der Option -R auf.
Wenn Sie sich in Ihrem Home-Verzeichnis etwas umschauen, stellen Sie fest, dass die meisten Dateien auf den Wert 644 eingestellt sind, bei Verzeichnissen zeigt ein ls -ld in der Regel drwxr-xr-x, was dem Wert 755 entspricht. Bei beiden Einstellungen handelt es sich um die Standardwerte für die so genannte User File-Creation Mask, kurz Umask. Sie legt fest, welche Rechte neu angelegte Dateien und Verzeichnisse aufweisen.
Die meisten Distribution setzen die Umask beim Login automatisch über ein entsprechendes PAM-Modul (pam_umask.so), alternativ bietet sich das Setup über die Dateien /etc/profile (global) beziehungsweise ~/.profile (benutzerspezifisch) an. Welchen Wert Ihr Linux-System gerade nutzt, erfahren Sie über den Befehl umask. Er zeigt allerdings nicht die eingestellten Rechte an, sondern welche Rechte von allen möglichen Rechten abgezogen werden sollen.
Die Tabelle "Umask bestimmen" zeigt das an drei Beispielen. Sollen zum Beispiel der Eigentümer und die Gruppe vollen Zugriff auf eine Datei bekommen, die übrigen Nutzer jedoch nicht einmal Leserechte (Modus 660), lautet der passende Befehl
$ umask 006
Bei Verzeichnissen und ausführbaren Dateien beträgt der Wert der Summe aller Rechte 777. Die traditionelle Umask 022 richtet somit den Werte 755 ein. Aktuelle Distributionen zeigen bei der Ausgabe des Umask-Befehls eine vierstellige Zahl an. Das hängt damit zusammen, dass sich die Möglichkeiten der File-Creation Mask durch die erweiterten Attribute (Extended Attributes) erweitert haben. An der grundlegenden Nutzung der Umask hat sich aber nichts geändert.
Umask bestimmen
|
| Nur ich | Standard | Alle dürfen | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Dateien | |||||||||
| Modus | 600 | 644 | 666 | ||||||
| Alle Rechte | 666 | 666 | 666 | ||||||
| Umask | 066 | 022 | 000 | ||||||
| Verzeichnisse | |||||||||
| Modus | 700 | 755 | 777 | ||||||
| Alle Rechte | 777 | 777 | 777 | ||||||
| Umask | 077 | 022 | 000 | ||||||



