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.

Jetzt üben: Fragen zu Zugriffsrechte (Dateiberechtigungen)

Im Home-Verzeichnis zeigt „ls“ nur notes.txt an, „ls -a“ dagegen „.“, „..“, „.bashrc“ und „notes.txt“. Welche Erklärung dieses Ergebnisses ist richtig?

  1. A„.“ bezeichnet das aktuelle und „..“ das übergeordnete Verzeichnis; .bashrc ist wegen seines mit „.“ beginnenden Namens eine versteckte Datei und wird ohne -a nicht angezeigt
  2. B„.“ bezeichnet das aktuelle und „..“ das übergeordnete Verzeichnis; .bashrc ist eine schreibgeschützte Datei und wird ohne -a nicht angezeigt
  3. C„.“ bezeichnet das Wurzelverzeichnis und „..“ das Home-Verzeichnis; .bashrc ist wegen seines mit „.“ beginnenden Namens eine versteckte Datei und wird ohne -a nicht angezeigt
Antwort und Erläuterung anzeigen

Antwort: A. „.“ bezeichnet das aktuelle und „..“ das übergeordnete Verzeichnis; .bashrc ist wegen seines mit „.“ beginnenden Namens eine versteckte Datei und wird ohne -a nicht angezeigt

Jedes Verzeichnis enthält einen Eintrag „.“ für sich selbst und einen Eintrag „..“ für das übergeordnete Verzeichnis. Dateien und Verzeichnisse, deren Namen mit „.“ beginnen, gelten als versteckt: ls zeigt sie ohne Optionen nicht an, mit -a (all) dagegen schon. Konfigurationsdateien von Shells und Werkzeugen wie .bashrc erhalten oft versteckte Namen, damit sie in gewöhnlichen Auflistungen nicht stören. Ob eine Datei angezeigt wird, hängt nur von ihrem Namen ab und hat nichts mit ihren Zugriffsrechten zu tun.

Welche Beschreibung des Befehls sudo unter Linux ist richtig?

  1. AEinen mit sudo versehenen Befehl kann jeder ausführen, der das root-Passwort kennt, und nirgends wird aufgezeichnet, wer ihn ausgeführt hat
  2. BEin mit sudo versehener Befehl erhält vom Kernel eine höhere Priorität als andere Prozesse und läuft schneller, weil er die CPU bevorzugt nutzen kann
  3. CEin in sudoers berechtigter Benutzer führt damit einen Befehl mit den Rechten eines anderen Benutzers (standardmäßig root) aus und gibt standardmäßig sein eigenes Passwort ein
Antwort und Erläuterung anzeigen

Antwort: C. Ein in sudoers berechtigter Benutzer führt damit einen Befehl mit den Rechten eines anderen Benutzers (standardmäßig root) aus und gibt standardmäßig sein eigenes Passwort ein

root ist das Administratorkonto (Superuser), das im Wesentlichen ohne die Einschränkungen der Zugriffsrechte alles im System bedienen kann. sudo ist ein Mechanismus, mit dem nur in /etc/sudoers oder ähnlich berechtigte Benutzer einzelne Befehle mit den Rechten von root oder einem anderen Benutzer ausführen können; in der Standardeinstellung bestätigt der Benutzer mit seinem eigenen Passwort, und die ausgeführten Befehle werden protokolliert. Verglichen damit, das root-Passwort zu teilen und sich immer als root anzumelden, lässt sich leichter nachvollziehen, wer was getan hat, und weitreichende Rechte werden nur bei Bedarf genutzt. Rechte auf das notwendige Minimum zu beschränken, beruht auf dem Prinzip der minimalen Rechte aus der Informationssicherheit.

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.

„Zugriffsrechte (Dateiberechtigungen)“ in den Erläuterungen

Fragen mit „Zugriffsrechte (Dateiberechtigungen)“ (2)

  1. Im Home-Verzeichnis zeigt „ls“ nur notes.txt an, „ls -a“ dagegen „.“, „..“, „.bashrc“ und „notes.txt“. Welche Erklärung dieses Ergebnisses ist richtig?
  2. Welche Beschreibung des Befehls sudo unter Linux ist richtig?

Verwandte Begriffe

Shell Superuser Prinzip der minimalen Rechte (Least Privilege) cron Ein-/Ausgabeumleitung Git grep Hardlink Inode Pipe (|)

Zur Glossarübersicht