Raspberry Pi: Linux Datei-Zugriffsrechte verstehen

Kategorien:

Durch Chipknappheit und gestörte Lieferketten ist der Raspberry Pi derzeit kaum zu bekommen oder unverschämt teuer. Unter Umständen kann es sinnvoller und günstiger zu sein, für dein Projekt einen echten Mini-PC wie den HP ProDesk 600* zu kaufen und dort ein Linux-Betriebssystem wie Ubuntu oder Debian zu installieren.

Das Standardbetriebssystem für den Raspberry Pi ist Raspberry Pi OS, früher Raspbian genannt. Dabei handelt es sich um ein Linux-Betriebssystem, auf Basis der Distribution Debian. Aber auch wenn ein anderes Betriebssystem eingesetzt wird, handelt es sich dabei in den allermeisten Fällen um ein System das auf Linux basiert.

Wenn man sich regelmäßig mit dem Raspberry Pi beschäftigt, ist es daher hilfreich, wenn man auch versteht, wie die Zugriffsrechte auf Dateien und Ordner vergeben werden. Denn früher oder später wird man in die Situation kommen, dass man eine Datei nicht lesen oder schreiben darf, obwohl die nötig ist. Oder dass man keine Zugriffsrechte auf einen Ordner hat, auf den man Zugriff benötigt.

Hat man verstanden, wir die Zugriffsrechte unter Linux vergeben werden, ist es einfach, die Datei- und Ordnerrechte auf dem Raspberry Pi zu ändern.

Anzeigen von Zugriffsrechten auf dem Raspberry Pi

Wie die Zugriffsrechte für eine Datei oder einen Ordner vergeben sind, kann man sich auf zwei Arten anschauen. Entweder über den grafischen Dateimanager, oder im Terminal, wobei man im Terminal definitiv die bessere Übersicht hat.

Im Dateimanager kann man sich immer nur die Zugriffsrechte von einer Datei oder einem Ordner anzeigen lassen. Hierzu klickt man mit der rechten Maustaste auf die Datei und wählt die Option „Dateieigenschaften.“ Dort wechselt man zum Reiter „Berechtigungen“.

Nun wird einem angezeigt, welchem User die Datei gehört, und wer diese lesen und schreiben darf.

Anzeige von Zugriffsrechten im Raspberry Pi Dateimanager

Im Terminal bekommt man die Eigentümer und deren Rechte übersichtlich mit folgendem Befehl angezeigt.

ls -l
Anzeige von Zugriffsrechten im Raspberry Pi Terminal

Eigentümer von Dateien anzeigen

Bei der Vergabe von Zugriffsrechten im Dateisystem wird nach dem Eigentümer und der Gruppenzugehörigkeit von Systembenutzern unterschieden. Dabei können unterschiedliche Rechte für drei Gruppen vergeben werden.

  • User (Eigentümer). Normalerweise der Ersteller der Datei. Kann aber nachträglich geändert werden.
  • Group (Gruppe). Benutzer gehören einer oder mehreren Gruppen an. Beispielsweise normale User, Administratoren (sudo) o.ö.
  • Other (alle anderen). Alle Benutzer, die weder Eigentümer sind, noch der angegebenen Gruppe angehören.

In diesem Screenshot gehört die Datei dem User pi und der Gruppe media. Eine Datei, oder ein Ordner kann immer nur einem Benutzer und einer Gruppe gehören. Allerdings kann ein Benutzer Mitglied mehrere Gruppen sein.

Eigentümer einer Datei anzeigen

Zugriffsrechte für Benutzer und Gruppen

Für die drei genannten Gruppen (User, Group, Other) kann individuell festgelegt werden, welche Rechte diese an einer Datei haben. Dabei werden folgende Berechtigungen unterschieden.

  • Read (lesen). Der Benutzer hat Lesezugriff auf die Datei. Damit kann der Inhalt angeschaut aber nicht verändert werden. Wer eine Datei lesen kann, kann diese beispielsweise auch kopieren.
  • Write (schreiben). Wer Schreibzugriff hat, der kann eine Datei verändern. Um eine Datei zu löschen ist ebenfalls Schreibzugriff nötig.
  • Execute (ausführen). Wenn es sich um eine ausführbare Datei handelt, beispielsweise ein Programm oder ein Skript, dann kann dieses direkt ausgeführt werden. Achtung: Dies ist eher ein Komfort- als ein Sicherheitsfeature. Wer Lesezugriff hat, der kann eine Datei auch ausführen, da er den Inhalt kennt. Aber mit dem Execute-Recht kann ein Programm beispielsweise mit einem Doppelklick ausgeführt werden.

Es gibt mehrere Möglichkeiten, die Zugriffsrechte darzustellen. Am gebräuchlichsten ist die symbolische Darstellung (wie im Screenshot), oder die octale Darstellung. Diese wird häufig beim Ändern der berechtigungen mit dem Befehl chmod verwendet.

chmod (octal)symbolisch
Lesen, schreiben und ausführen7rwx
Lesen und Schreiben6rw-
Lesen und Ausführen5r-x
Nur lesen4r–
Schreiben und Ausführen3-wx
Nur Schreiben2-w-
Nur Ausführen1–x
Keine Rechte0
Lese und Schreibrechte im Terminal angezeigt

Die symbolische Darstellung besteht also immer aus drei Zeichen, die jeweils ein Recht darstellen (r,w,x). Diese wiederum werden für die drei oben genannten Gruppen vergeben (user, group, other).

Die erste Berechtigungsruppe ist immer der Eigentümer. Die zweite die Gruppe und die dritte alle anderen.

In diesem Beispiel sind also für die Datei testfile folgende Rechte vergeben:

  • User (Eigentümer): rw (lesen und schreiben)
  • Group (Gruppe): r (nur lesen)
  • Other (alle anderen): r (nur lesen)

In octaler Schreibweise würde diese Rechtevergabe folgendermaßen lauten: 644

  • Erste Gruppe (Eigentümer): 6 = lesen/schreiben,
  • Zweite Gruppe (Gruppe): 4 = nur lesen
  • Dritte Gruppe (alle anderen): 4 = nur lesen

Eigentümer und Gruppe einer Datei ändern

Mit folgendem Befehl kann man den Eigentümer oder die Gruppe ändern. Diese Änderung darf nur der derzeitige Eigentümer oder root vornehmen.

Um Befehle mit Rootrechten auszuführen, wird dem Befehl „sudo“ vorangestellt. Sudo darf jedoch nur von Usern verwendet werden, denen das entsprechende Recht gegeben wurde, als der User angelegt wurde.

sudo chown USER:GROUP DATEI

Wenn der Eigentümer der Datei testfile zum User „root“ und die Gruppe zu „pi“ geändert werden soll, dann lautet der Befehl:

sudo chown root:pi testfile
Eigentümer und Gruppe einer Datei ändern

Lese- und Schreibrechte auf dem Raspberry Pi ändern

Möchte man die Rechte an einer Datei ändern, dann kann man dies wiederum mit der symbolischen, als auch mit der octalen Schreibweise tun.

Die symbolische Schreibweise ist leichter zu verstehen. Hat man sich jedoch einmal an die octale gewöhnt, dann lässt sich damit viel schneller arbeiten.

In diesem Beispiel soll der Eigentümer (root) zusätzlich das Ausführen-Recht bekommen. Damit lassen sich Dateien unter Linux ausführbar machen.
Alle anderen Benutzern, die nicht Eigentümer oder Teil der Gruppe sind, soll das Leserecht entzogen werden. Hierfür wird der Linux-Befehl chmod verwendet.

Möchte man die symbolische Schreibweise verwenden, dann werden folgende Befehle benutzt.

sudo chmod u+x,o-r testfile

Mit sudo erlangt man erhöhte Rechte.
Chmod ist der Befehl um Dateirechte zu verändern.
U+X fügt dem Eigentümer (user=u) das Ausführen-Recht (execute=x) hinzu.
O-R entzieht allen anderen Benutzern (other=o) das Leserecht (read=r).

Wenn man die octale Schreibweise verwendet, dann lautet der Befehl

sudo chmod 740 testfile

Erste Gruppe (user): 7 = lesen, schreiben, ausführen
Zweite Gruppe (group): 4 = lesen
Dritte Gruppe (other): 0 = keine Rechte

Anschließend sieht die Rechtevergabe für die Datei testfile folgendermaßen aus.

Neue Berechtigungen vergeben

Als Rechte wurde also vergeben: rwx r— —

Erste Gruppe (user): rwx (read,write,execute/lesen, schreiben, ausführen)
Zweite Gruppe (group): r– (read, lesen)
Dritte Gruppe (other): — (keine Rechte)

Die Anzeige und Vergabe von Dateirechten unter Linux mag auf den ersten Blick verwirrend und kompliziert erscheinen. Hat man aber das Prinzip verstanden, dann ist es auf einmal ganz logisch.

Es gibt drei verschiedene Benutzergruppen (Eigentümer, Gruppe, alle anderen). Diesen werden jeweils eigene Zugriffsrechte eingeräumt (lesen, schreiben, ausführen). Mehr muss man über die grundlegende Vergabe von Zugriffsrechten unter Linux gar nicht wissen.

Unterwegs immer mit Strom versorgt
Anzeige
Powerbank 60W Ladeleistung für Laptop & Handy
20.000 mAh, USB-C und USB-A, Hohe Ladeleistung ermöglicht Laden von Notebooks
Perfekte Reiseladegerät - Hohe Ladeleistung, 3 Ausgänge
USB-C & USB-A, 65W Ladeleistung lädt Laptops & Handys, Power Delivery & Quick Charge
Niko
Niko
Ich bin Niko, betreibe BitReporter und interessiere mich für jede Form von Technologie, die in unseren Alltag Einzug hält. Ich schreibe hier über Software und Hardware die ich verwende, sowie Probleme mit meiner Technik und Lösungen. Schließlich soll Technik nützlich sein und Spaß machen und nicht zusätzliche Arbeit verursachen.

4 Kommentare

  1. Hallo, danke für den guten Beitrag, den ich grundsätzlich verstehe. Nicht verstehen kann ich allerdings, wozu man auf einem Einplatinenrechner verschiedene Benutzer mit verschiedenen Rechten braucht ?! – damit man die Linux-Programme nicht ändern muß ?

    • Es ist halt Teil des Sicherheitskonzepts von Linux, dass unterschiedliche Dienste mit unterschiedlichen Usern und damit unterschiedlichen Berechtigungen laufen.

  2. Danke Niko für die gute Erklärung. Du schreibst aber nur für den Fall, dass man schon auf dem Pi ist. Wenn man dagegen – was häufig mal vorkommen kann – die MicroSD von einem anderen Rechner aus beschreiben will (bei mir Ubuntu) dann kommt man trotzdem nicht ran. Kannst du mir n Tipp geben, wie das unkompliziert geht?

    • Wenn die SD-Karte nicht read-only gemounted ist, was standardmäßig eigentlich nicht der Fall sein sollte, liegt es auch an den Berechtigungen. Die SD-Karte sollte im Ordner „/media// sein. Schau dir mal dort die Berechtigungen an. Mit sudo hat du wahrscheinlich schon Zugriff.

Hinterlasse einen Kommentar

Bitte geben Sie Ihren Kommentar ein!
Die Angabe von Name oder Webseite ist optional. Weitere Informationen: siehe Datenschutzerklärung

Bitte geben Sie hier Ihren Namen ein