Zugriffsrechte unter Linux

 Zielgruppe: Einsteiger 

Zugriffsrechte von Dateien/Verzeichnissen
Linux ist ein Multi-User-Betriebssystem! Das heißt, es können viele Leute (auch gleichzeitig) an einem Rechner arbeiten. Damit nicht jeder Benutzer die Festplatte formatieren oder fremde Dateien löschen kann, gibt es unter Linux sogenannte Zugriffsrechte. Diese Zugriffsrechte werden zum Beispiel beim Auflisten des Verzeichnisinhaltes mit "ls -l" angezeigt:

drwxr-xr-x   2 martin   users  4096 Mar  7 11:18 Verzeichnis
-rw-r--r--   1 martin   users   123 Mar  7 11:19 Datei
-rwxr--r--   1 martin   users   300 Mar  7 11:20 Script

Die ersten 10 Zeichen (naja, eigentlich sind es nur die Zeichen 2 bis 10) beschreiben die Zugriffsrechte. Der erste "rwx"-Block steht für den Eigentümer der Datei, der zweite für die Gruppe und der dritte Block für alle anderen. Das "r" steht für read (also Leserechte), das "w" für write (Schreibrechte) und das "x" für executable (Recht, das Programm auszuführen). Vor den drei "rwx"-Blöcken kann noch ein "d" für Directory (Verzeichnis) oder ein "l" für einen Link (Verknüpfung) stehen. Bei "-rwxr--r--" handelt es sich also um eine Datei, die jeder Lesen kann, aber nur der Eigentümer schreiben und ausführen darf. "drwxr-xr-x" bedeutet, dass es ein Verzeichnis ist, welches jeder Benutzer einsehen, aber nicht löschen darf (nur der Eigentümer). Wenn root möchte, dass seine Programme ("/sbin") auch von normalen Benutzern ausgeführt werden dürfen, dann setzt er das sogenannte Suid-Bit der Rechte. Das erkennt man daran, dass es sich nicht um einen "r-x"-Block handelt, sondern um einen "r-s"-Block.

Ändern der Zugriffsrechte
Wenn du nicht möchtest, dass andere Benutzer deiner Gruppe deine Dateien oder Verzeichnisse nicht einsehen dürfen oder du jemandem Dateien zugänglich machen möchtest, dann musst du die oben beschriebenen Rechte ändern. Dazu gibt es den Befehl chmod und die Abkürzungen "u" für user (Benutzer), "g" für group (Gruppe), "o" für other (andere) und "a" für all (alles). Zusammen mit den Operationszeichen "+" für Hinzufügen, "-" für Entfernen und "=" für ausschließliches Setzen und obigem Wissen über die Rechte read, write, execute (rwx) kannst du dich nun ans Werk machen und etwas mit den Rechten herumexperimentieren. Aber Achtung: Schließ dich nicht selbst aus, indem du dir die Leserechte für eine Datei entfernst. Zur Not lässt es sich jedoch als Benutzer root alles wieder restaurieren... :-)

Nehmen wir an, du möchtest anderen Benutzern deiner Gruppe auch ein Schreibrecht zuteilen, dann gib folgendes ein:

chmod g+w Datei

Zum Entfernen des Schreibrechts genügt dann

chmod g-w Datei

Wenn du nun beispielsweise allen Benutzern, die nicht in deiner Gruppe sind, alle Rechte nehmen möchtest, dann müsstest du folgenden Befehl verwenden:

chmod o= datei.txt

Ändern des Eigentümers
Den Besitzer oder die Gruppe einer Datei kann nur der Systemverwalter root ändern. Mit dem Befehl "su" wechselst du im laufenden Betrieb deine Identität - vorausgesetzt du kennst das Kennwort von root. Zum Ändern von Besitzer/Gruppe, verwendest du die Befehle chown (change owner => Besitzer ändern) und chgrp (change group => Gruppe ändern). Mit

chown root Datei

weist du der Datei "Datei" root als neuen Inhaber zu. Mit

chgrp root Datei

legst du fest, dass die "Datei" einem Benutzer in der Gruppe "root" gehört. Mit

chown root:root Datei

können beide Befehle in einem Schritt durchgeführt werden.

Versteckte Dateien unter Linux
Hast du dich auch schon gefragt, wie man unter Linux Dateien verstecken kann? Nun, das funktioniert etwas anders als unter DOS, denn unter Linux sind alle Dateien mit einem führenden Punkt automatisch versteckt (z. B. /root/.bash_history). Wenn also eine Datei nachträglich als versteckt markiert werden soll, so benennt man sie einfach um:

mv Datei .Datei