Was ist Zugriffsrechte (Dateiberechtigungen)?
Unter Linux und ähnlichen Systemen die Einstellung für jede Datei und jedes Verzeichnis, ob Lesen (r), Schreiben (w) und Ausführen (x) jeweils für Eigentümer (user), Gruppe (group) und andere (others) erlaubt sind. ls -l zeigt sie als rwxr-xr--, und chmod drückt sie auch oktal aus, etwa als 754 (Summe aus r = 4, w = 2, x = 1). Die Rechte neu angelegter Dateien bestimmt die umask. root (der Superuser) kann Dateien im Allgemeinen ungeachtet dieser Einschränkungen lesen und schreiben.
Japanische Bezeichnung: パーミッション
„Zugriffsrechte (Dateiberechtigungen)“ kommt in 2 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Linux und der Kommandozeile.
Fachgebiet: Grundlagen von Linux und der Kommandozeile
Die Notation lesen
Von den ersten 10 Zeichen der Ausgabe von ls -l gibt das erste den Dateityp an (- für eine gewöhnliche Datei, d für ein Verzeichnis, l für einen symbolischen Link), und die folgenden Dreiergruppen sind die Rechte von Eigentümer, Gruppe und anderen. Oktal ist jede Ziffer die Summe aus r = 4, w = 2 und x = 1, also entspricht rwxr-xr-- dem Wert 754 und rw-r--r-- dem Wert 644. Außer durch Zahlen wie in chmod 754 file lässt sich mit Symbolen auch nur ein Teil ändern, etwa mit chmod g+w file oder chmod o-r file.
Rechte von Verzeichnissen
Bei einem Verzeichnis ist r das Recht, die Liste der darin enthaltenen Namen zu lesen, w das Recht, darin Dateien anzulegen und zu löschen, und x das Recht, es zu betreten und Dateien über ihren Namen zu erreichen. Ob eine Datei gelöscht werden kann, entscheidet daher nicht die Datei selbst, sondern w und x des Verzeichnisses. Ein Verzeichnis, in das jeder schreiben darf, wie /tmp, erhält das Sticky Bit (t), damit niemand die Dateien anderer löschen kann.
Sonderbits und umask
Es gibt setuid, das ein Programm mit den Rechten des Eigentümers laufen lässt (s an der x-Position des Eigentümers), setgid, das es mit den Rechten der Gruppe laufen lässt, und das oben genannte Sticky Bit; oktal werden sie an den Stellen 4000, 2000 und 1000 ausgedrückt. Neue Dateien entstehen aus 666 und Verzeichnisse aus 777, wobei die Bits der umask entfernt werden; mit umask 022 werden Dateien also zu 644 und Verzeichnisse zu 755.
Häufige Fragen
Löst chmod 777 das Problem?
„Permission denied“ verschwindet vielleicht, doch dann kann jeder die Datei ändern oder ausführen, und andere Benutzer oder Programme könnten ihren Inhalt verändern. Grundsätzlich prüft man zuerst, welche Benutzer welche Operationen ausführen können müssen, passt Eigentümer und Gruppe mit chown und chgrp an und vergibt nur die nötigen Rechte.
Wie erlaubt man auf einem gemeinsam genutzten Server nur den Teammitgliedern, Dateien zu lesen?
Man legt eine Gruppe für das Team an, fügt die Mitglieder hinzu, setzt die Gruppe der Dateien und Verzeichnisse auf diese Gruppe und gibt der Gruppe r (bei Verzeichnissen r und x) und den anderen nichts (zum Beispiel 640 für Dateien und 750 für Verzeichnisse). Um Rechte pro Person fein festzulegen, kann man auch ACLs (setfacl, getfacl) verwenden.