Raspberry Pi Datei-Rechte ändern/vergeben kompakt erklärt (chmod, chown & co)

Als Video ansehen
Bereitgestellt über YouTube

Raspberry Pi Datei-Rechte ändern/vergeben kompakt erklärt (chmod, chown & co)

Im folgenden zeige ich dir, welche Rechte es auf dem Raspberry Pi unter Linux gibt, wie du sie einsehen und vergeben kannst. Wenn du bereits etwas Erfahrung mit Linux sowie dessen Berechtigungen besitzt und die wichtigsten Infos zu Dateirechten mit chmod & co. kompakt zusammengefasst suchst, dann bist du hier genau richtig! Für Anfänger empfehle ich unseren Grundlagen-Artikel, der das Thema detaillierter erklärt und auch mehr auf die Hintergründe eingeht.

Wie werden Dateirechte unter Linux vergeben?

Linux folgt dem „Alles ist eine Datei“ Grundsatz. Alles im folgenden gezeigte gilt somit auch für Ordner. Zur Rechtevergabe gibt es drei Kategorien:

  • Eigentümer-Benutzer (u): In der Regel ist das der Nutzer, der die Datei oder den Ordner angelegt hat.
  • Eigentümer-Gruppe (g): Darüber lassen sich mehrere Nutzer berechtigen, da eine Datei nur einen einzigen Eigentümer-Benutzer haben darf.
  • Sonstige (o): Legt die Rechte für sämtliche anderen Nutzer fest.

So kann man die Rechte von Dateien und Ordnern einsehen

Beispielsweise mit ls -l. Ganz links sehen wir die Rechte. Der erste Buchstabe steht für die Art der Datei: Minus steht für eine „normale“ Datei, d für directory (also ein Ordner). Es gibt noch ein paar spezielle Dateitypen wie z.B. l für symbolische Links.

Danach folgen jeweils drei Buchstaben für die Rechte des Eigentümer-Benutzers, der Gruppe und alle anderen. Jeweils im Format rwx. Ein Minus bedeutet, dass das jeweilige Recht nicht gewährt ist. Beispiel: rw- heißt, man darf Schreiben und Lesen, aber nicht Ausführen.

Eigentümerschaft ändern

Den Eigentümer-Benutzer kannst du mit chown (Change owner) ändern, für die Gruppe gibt es chgrp (Change group). Das Muster ist immer gleich. Folgendes Beispiel ändert den Besitzer auf den Nutzer pi und die Gruppe auf ulabs:

chown pi datei.txt
chgrp ulabs datei.txt

# Alternative Kurzschreibweise um Nutzer + Gruppe gleichzeitig zu setzen
chown pi:ulabs datei.txt

Führst du dies auf einem Ordner statt einer Datei aus, werden die Eigentümer nur für den Ordner gesetzt – nicht aber für die darin enthaltenen Dateien und Unterordner. Wenn du dies möchtest, musst du den rekursiven Modus mit -R nutzen. Verwende dies aber mit Bedacht! Am besten zuvor gründlich prüfen, ob wirklich alle Dateien und Unterordner geändert werden sollen.

Berechtigungen ändern

Auf alle drei Rollen bzw. Kategorien (also Eigentümer-Benutzer/Gruppe und Sonstige) kann man drei Rechte vergeben:

  • r für read, also Leserechte
  • w für write, das sind Schreibrechte um die Datei zu ändern
  • x für execute, erforderlich um Programme oder Skripte ausführen zu können

Dies geschieht mit chmod: Zuerst kommt das Kürzel der Kategorie, dabei steht u für den Eigentümer-Benutzer, g für die Gruppe und o für die anderen. Mit + eine Berechtigung hinzufügen und mit – entfernen. Mehrere Kategorien lassen sich mit Komma trennen:

Ein paar Beispiele:

chmod g+w datei.txt -> Die Gruppe erhält zusätzlich Schreibrechte
chmod g+x,o+r datei.txt -> Die Gruppe erhält zusätzlich Rechte zum Ausführen, alle anderen dürfen Lesen
chmod g-x datei.txt -> Entfernt die Schreibrechte der Gruppe

Die restlichen Berechtigungen bleiben unangetastet. Hat die Gruppe z.B. rx Rechte und wir machen g+w, verfügt sie anschließend über volle rwx Berechtigungen. Um vorhandene Rechte zu überschreiben, einfach das = Zeichen verwenden:

chmod g=rw datei.txt -> Die Gruppe erhält Lese- und Schreibrechte. Hatte sie vorher Ausführen-Rechte, sind diese überschrieben worden und damit weg.

Soll eine Kategorie keine Rechte haben, setzt man ein = ohne Inhalt:

chmod o= datei.txt -> Alle anderen erhalten keine Rechte

Berechtigungen in oktaler Schreibweise vergeben

Alternativ lassen sich die gleichen Rechte oktal mit den Ziffern 0 bis 7 abbilden:

  • 0 für keinerlei Rechte
  • 1 für Ausführen
  • 2 für Schreiben
  • 4 für Leserechte

Alle ab 1 lassen sich kombinieren: 5 steht für Lesen und Ausführen (rx), 6 für Lesen und Schreiben (rw) und so weiter. Jede Kategorie bzw. Rolle erhält eine Ziffer.

chmod 650 heißt beispielsweise: Der Eigentümer-Benutzer darf Lesen und Schreiben (4 + 2 = 6), die Gruppe Lesen und ausführen (4 + 1 = 5) und alle anderen nichts (0).

Man kann optional eine führende Null davor setzen: 0650 und 650 sind identisch. Die Null ist für das Sticky-Bit. Es wurde früher bei ausführbaren Dateien aus Leistungsgründen genutzt, ist dafür heute aber kaum mehr wichtig. Heute macht es für Ordner Sinn, wenn mehrere Benutzer dort schreiben dürfen, aber jeder nur die selbst erstellten Dateien ändern können soll. Für diesen eher seltenen Anwendungsfall kann man das Sticky-Bit auf 1 setzen, also beispielsweise 1650 statt 0650 oder auch nur 650. Standardmäßig wird es oft nicht angegeben, dadurch ist es abgeschaltet.

Grundsätzlich ist es egal, ob man die Rechte Oktal oder in Buchstaben angibt. Oktal ist es etwas weniger Tipparbeit, dafür auch etwas weniger lesbar. Es ist daher Geschmackssache.

So viele Rechte wie (wirklich) nötig, so wenig wie möglich: Warum man chmod 777 meiden sollte

Mit chmod 777 bekommt jeder volle Rechte. Das wird teils bei Berechtigungsproblemen empfohlen, ist aus Sicherheitsgründen allerdings schlecht – effektiv hebt es die Berechtigungen komplett aus und sollte daher höchstens zu Testzwecken genutzt werden. In der Regel vergibt man Rechte auf den Eigentümer-Nutzer oder die Gruppe. Wenn mehrere Benutzer Zugriff erhalten sollen, lässt sich das über Gruppen abbilden. Alternativ gibt es ACLs, die aber zusätzliche Komplexität schaffen und nur selten benötigt werden. In den meisten Fällen reichen Gruppen aus.

Mehr Informationen zu Linux-Berechtigungen gefällig?

Du möchtest noch mehr über Linux-Berechtigungen erfahren? Dann schaue dir hier gerne meinen zweiten Beitrag zu diesem Thema an. Darin gehe ich noch detaillierter auf das Rechtesystem ein und du bekommst einen Einblick in die Geschichte, wie sie entstanden sind. Viel Spaß sowie Erfolg bei deinen Raspberry Pi bzw. Linux-Projekten!

Leave a Reply