Permissionator

chmod-Rechner für Linux zum Generieren, Konvertieren und Prüfen von Dateiberechtigungen

Alles über Linux-Dateiberechtigungen und chmod

Berechtigungen legen fest, welche Nutzer Dateien lesen, schreiben oder ausführen dürfen. Wichtig ist, dass nur die wirklich nötigen Nutzer Zugriff haben, damit dein System sicher und stabil bleibt.

Was sind Dateiberechtigungen?

Berechtigungen steuern, wer auf einem Linux-System eine Datei oder einen Ordner lesen, schreiben oder ausführen darf. Sie schützen deine Daten, verhindern unerwünschte Änderungen und stellen sicher, dass Programme nur wie vorgesehen laufen. Berechtigungen sind ein Grundpfeiler der Linux-Sicherheit — ohne sie könnte jeder Systemdateien ändern oder deine privaten Daten lesen. Gesetzt werden sie mit dem Befehl chmod, den wir unten im Detail erklären.

Benutzertypen

In Linux gelten Berechtigungen getrennt für drei Nutzerkategorien:

  • Besitzer

    Meist die Person, die die Datei erstellt oder besitzt.

  • Gruppe

    Andere Nutzer, die Mitglied der Datei-Gruppe sind.

  • Andere

    Alle übrigen im System, die weder Besitzer sind noch zur Gruppe gehören.

Arten von Berechtigungen

Lesen (r)

Dateiinhalt ansehen oder Dateien in einem Ordner auflisten.

Schreiben (w)

Eine Datei ändern oder Dateien in einem Ordner hinzufügen/entfernen.

Ausführen (x)

Eine Datei als Programm starten oder einen Ordner betreten.

Der Befehl chmod

chmod steht für „change mode“. Er ändert die Berechtigungen einer Datei oder eines Ordners.Du kannst ihn in symbolischer Form (Buchstaben wie rwx) oder numerisch (Oktalzahlen wie 777) verwenden.Funktioniert für einzelne Dateien oder ganze Ordner.

Symbolische Darstellung

Die erste Möglichkeit ist der symbolische Modus, der Buchstaben für jeden Benutzertyp nutzt. Das ist leichter zu merken, zu lesen und zu verstehen, aber ausführlicher als Oktal. r steht für Lesen, w für Schreiben, x für Ausführen. Ersetzt ein Bindestrich (-) einen Buchstaben, ist diese Berechtigung nicht gewährt. Diagramm zur Struktur von Linux-Berechtigungsstrings. Zeigt den Dateityp-Indikator gefolgt von Rechten für Besitzer, Gruppe und öffentlich. Das Beispiel „-rwxr-xr-x“ bedeutet: Besitzer darf lesen, schreiben und ausführen; Gruppe darf lesen und ausführen; Andere dürfen lesen und ausführen.

Oktale (numerische) Darstellung

Der oktale Modus nutzt Zahlen für Berechtigungen. Dabei gilt: Lesen = 4, Schreiben = 2, Ausführen = 1. Diese werden addiert; im Beispiel ergibt das 7, was Lesen, Schreiben und Ausführen bedeutet. Wie zuvor ist die Reihenfolge Besitzer, Gruppe, Andere. 755 bedeutet also: Besitzer rwx (7), Gruppe rx (5) und Andere rx (5). Diagramm mit chmod 755 in numerischer und symbolischer Form. 755 entspricht rwx für den Besitzer, r-x für die Gruppe und r-x für Andere; der Besitzer darf lesen, schreiben und ausführen, Gruppe und Andere nur lesen und ausführen.

Wenn dir die Zahlen zufällig erscheinen: Sie werden wie Binärzahlen berechnet. 111 (rwx) ist 7, 101 (r-x) ist 5 und 100 (r--) ist 4.

Visuelle Anleitung, wie Linux-Berechtigungen von der symbolischen Form (rwx, r-x, r-x) über binär zur numerischen Form (7, 5, 5) für Benutzer, Gruppe und Andere werden.

Eine einzelne Berechtigung ändern

Oft willst du nicht alle Berechtigungen eines Objekts ändern, sondern nur einen Teil. Zum Beispiel Ausführen nur für den Besitzer hinzufügen, Schreiben für die Öffentlichkeit entfernen oder die Gruppe auf Nur-Lesen setzen. Das geht im symbolischen Modus mit den Operatoren `+`, `-` oder `=`, im Format `chmod [wer][operator][berechtigung] datei`. Dabei kann `wer` `u` (Besitzer), `g` (Gruppe), `o` (Andere) oder `a` (alle) sein. `operator` ist `+` (hinzufügen), `-` (entfernen) oder `=` (genau setzen). Beispiel: `chmod g-w file.txt` entfernt dem Gruppe-Eintrag das Schreibrecht. Diagramm zur chmod-Syntax mit drei Bereichen: „Wer“ mit u für user, g für group, o für others, a für all; „Operatoren“ mit + zum Hinzufügen, - zum Entfernen und = zum exakten Setzen; und „Berechtigungen“ mit r für lesen, w für schreiben, x für ausführen.Tabelle mit Beispielen für chmod-Befehle zum Ändern von Berechtigungen, einschließlich Ziel (wer), Operation, Berechtigungstyp und Erklärung. Beispiele: u+r für Lesen für den Besitzer hinzufügen, g-w für Schreiben der Gruppe entfernen, a=x für nur Ausführen für alle.

Berechtigungen rekursiv ändern

Mit der Option `-R` änderst du die Berechtigungen aller Dateien und Ordner in einem Verzeichnis. Beispiel: `chmod -R 755 /var/www` setzt 755 für alles unter /var/www. Sei vorsichtig: Rekursive Änderungen können bei falscher Nutzung Systemdateien beschädigen.

Besitz und chmod

Berechtigungen wirken zusammen mit dem Besitz. Jede Datei hat einen Besitzer und eine Gruppe.

Wenn du den Besitzer ändern musst, nutze `chown`.

Beispiel: `sudo chown user:group file.txt` ändert Besitzer und Gruppe.

Spezialbits

Neben Lesen/Schreiben/Ausführen gibt es spezielle Berechtigungs-Bits:

  • Setuid (4)

    Führt die Datei mit den Rechten des Besitzers statt des aufrufenden Nutzers aus.

  • Setgid (2)

    Führt die Datei mit den Rechten der Gruppe aus. In Verzeichnissen erben neue Dateien die Gruppe.

  • Sticky (1)

    Verhindert in Verzeichnissen, dass Nutzer fremde Dateien löschen. Häufig in /tmp.

Häufige chmod-Voreinstellungen

Hier sind gängige Berechtigungssätze und wofür sie gedacht sind:

OctalMeaning
600Besitzer darf lesen/schreiben. Kein Zugriff für andere. SSH-Private Keys.
644Besitzer darf lesen/schreiben. Andere dürfen lesen. Standard für viele Dateien.
700Besitzer hat Vollzugriff. Kein Zugriff für andere. Private Skripte.
755Besitzer darf lesen/schreiben/ausführen. Andere dürfen lesen/ausführen. Häufig für Skripte.
777Alle dürfen lesen/schreiben/ausführen. Vermeiden, außer für temporäre gemeinsame Ordner.
Tabelle, die oktale Werte 0–7 den symbolischen Berechtigungen und ihrer Bedeutung zuordnet. Z. B. 0 = keine Rechte (---), 4 = nur Lesen (r--), 5 = Lesen und Ausführen (r-x), 7 = Lesen, Schreiben und Ausführen (rwx).

Fehlerbehebung bei Dateiberechtigungen

Wenn etwas nicht klappt, siehst du vielleicht diese Fehler:

  • Permission denied - Prüfe, ob du Ausführrechte auf Dateien oder Leserechte auf Ordnern hast. Ergänze mit `chmod +x datei` oder `chmod +r ordner`.
  • Operation not permitted - Du brauchst eventuell `sudo`, um systemeigene Dateien zu ändern.
  • Read-only file system - Das Dateisystem ist nur lesbar eingehängt. Mit Schreibrechten erneut einhängen oder Admin kontaktieren.
  • Cannot open file: No such file or directory - Der Pfad ist eventuell falsch. Prüfe mit `ls`.

Sicherheitstipps

  • Mach eine Datei nur dann ausführbar, wenn sie wirklich laufen muss.
  • Nutze 600 für private Dateien und 644 für öffentlich lesbare Dateien.
  • Vermeide 777, außer es ist unbedingt nötig.
  • Prüfe Berechtigungen mit `ls -l`, bevor du sie änderst.
  • Teste Änderungen zuerst an unkritischen Dateien.