Linux-Dateiberechtigungen verstehen und verwalten

Linux-Dateiberechtigungen steuern, wie Benutzer mit Dateien und Verzeichnissen interagieren dürfen – also ob sie diese lesen, bearbeiten oder ausführen können. Durch gezielte Vergabe dieser Rechte können Administratoren den Zugriff auf sensible Inhalte kontrollieren und die Systemsicherheit erhöhen.

Diese Anleitung gibt einen praxisnahen Überblick darüber, wie sich Berechtigungen unter Linux verwalten lassen. Dabei lernst du, wie die Berechtigungsmodi funktionieren und wie du mit den Befehlen chmod und chown Anpassungen vornimmst.

Arten von Linux-Berechtigungen

Linux kennt drei grundlegende Berechtigungstypen: Lesen, Schreiben und Ausführen – abgekürzt als RWX. Diese legen fest, was ein Benutzer mit einer Datei oder einem Verzeichnis tun darf:

  • Lesen (r): Ermöglicht das Anzeigen des Inhalts einer Datei oder das Auflisten von Verzeichnisinhalten.
  • Schreiben (w): Erlaubt das Ändern, Hinzufügen, Löschen oder Umbenennen von Dateien.
  • Ausführen (x): Gestattet das Starten einer Datei oder den Zugriff auf Verzeichnisse.

Diese Rechte gelten jeweils für drei Benutzerklassen:

  • Eigentümer: Der Benutzer, dem die Datei oder das Verzeichnis gehört.
  • Gruppe: Die mit der Datei oder dem Verzeichnis verknüpfte Benutzergruppe.
  • Andere: Alle übrigen Benutzer im System.

Wichtig: Wenn ein Benutzer sowohl Eigentümer als auch Gruppenmitglied ist, gelten ausschließlich die Eigentümerrechte. Hat der Eigentümer beispielsweise nur Leserechte, kann er die Datei nicht bearbeiten oder ausführen – selbst wenn die Gruppe volle Rechte besitzt.

Um einem Benutzer Gruppenrechte zuzuweisen, kannst du ihn mit den Befehlen usermod oder gpasswd zur entsprechenden Gruppe hinzufügen.

Wie Linux Berechtigungen anzeigt

Die Berechtigungen von Dateien und Verzeichnissen werden in einer Zeichenkette mit zehn Stellen dargestellt. Mit folgendem Befehl kannst du sie anzeigen lassen:

Die Ausgabe beginnt mit einem Zeichen für den Dateityp, gefolgt von drei Gruppen mit jeweils drei Zeichen – für den Eigentümer, die Gruppe und andere Benutzer:

  • : Normale Datei
  • d: Verzeichnis
  • l: Symbolischer Link
  • b: Blockgerät (z. B. Festplatten)
  • c: Zeichengerät (z. B. Terminals)
  • p: Named Pipe
  • s: Socket
  • D: Door

Die restlichen neun Zeichen stehen für die Berechtigungen in dieser Reihenfolge:

  • Eigentümer: Erste drei Zeichen
  • Gruppe: Mittlere drei Zeichen
  • Andere: Letzte drei Zeichen

Beispiel:

So lässt sich die Ausgabe interpretieren:

  • d: example.com ist ein Verzeichnis.
  • rwx: Der Eigentümer hat Lese-, Schreib- und Ausführungsrechte.
  • rw-: Die Gruppe darf lesen und schreiben, aber nicht ausführen.
  • r–: Andere Benutzer haben nur Leserechte.

So berechnest du Dateiberechtigungen unter Linux

In Linux werden Berechtigungen für Dateien und Verzeichnisse durch binäre Werte dargestellt. Jede Art von Berechtigung hat eine eigene Binär- und Zahlenzuordnung:

Berechtigung Binär Wert
Lesen (r) 100 4
Schreiben (w) 010 2
Ausführen (x) 001 1
Keine (-) 000 0

Kombinierte Berechtigungen im Überblick:

  • Lesen + Schreiben: 4 + 2 = 6 (Binär: 110, Symbol: rw-)
  • Lesen + Ausführen: 4 + 1 = 5 (Binär: 101, Symbol: r-x)
  • Schreiben + Ausführen: 2 + 1 = 3 (Binär: 011, Symbol: -wx)
  • Alle Rechte: 4 + 2 + 1 = 7 (Binär: 111, Symbol: rwx)

Gängige Linux-Berechtigungen erklärt

Details zur Berechtigung 644

Benutzerklasse Lesen (r) Schreiben (w) Ausführen (x) Keine (-) Gesamtwert
Eigentümer (u) 4 2 0 0 6
Gruppe (g) 4 0 0 0 4
Andere (o) 4 0 0 0 4

Mit der Einstellung 644 kann der Eigentümer die Datei lesen und bearbeiten. Gruppenmitglieder und andere Benutzer haben ausschließlich Leserechte.

Details zur Berechtigung 755

Benutzerklasse Lesen (r) Schreiben (w) Ausführen (x) Keine (-) Gesamtwert
Eigentümer (u) 4 2 1 0 7
Gruppe (g) 4 0 1 0 5
Andere (o) 4 0 1 0 5

Die 755-Berechtigung erlaubt dem Eigentümer vollen Zugriff, während Gruppe und andere Benutzer lediglich lesen und ausführen dürfen.

Details zur Berechtigung 777

Benutzerklasse Lesen (r) Schreiben (w) Ausführen (x) Keine (-) Gesamtwert
Eigentümer (u) 4 2 1 0 7
Gruppe (g) 4 2 1 0 7
Andere (o) 4 2 1 0 7

Mit 777 erhalten alle – Eigentümer, Gruppe und andere Benutzer – vollständigen Zugriff inklusive Lesen, Schreiben und Ausführen.

Hinweis zu Root-Rechten

Der Root-Nutzer kann alle gesetzten Berechtigungen ignorieren. Wird sudo verwendet, erfolgt der Zugriff mit Administratorrechten – unabhängig von den Dateiberechtigungen.

So überprüfst du Berechtigungen von Dateien und Verzeichnissen unter Linux

Der Befehl ls -l zeigt unter Linux ausführliche Informationen über die Berechtigungen, den Eigentümer, die Gruppe, die Dateigröße und das Datum der letzten Änderung einer Datei oder eines Verzeichnisses an. Möchtest du die Rechte eines Verzeichnisses selbst anzeigen – und nicht dessen Inhalt – kannst du die Option -d verwenden.

Im Folgenden findest du die Schritte, um die Dateiberechtigungen mit dem Befehl ls zu prüfen:

Beispieldatei und -verzeichnis erstellen

Erstelle zunächst eine Testdatei file.txt und ein Testverzeichnis /var/www/html:

$ touch file.txt && sudo mkdir /var/www/html

Dateiberechtigungen anzeigen

Um die Berechtigungen der Datei zu überprüfen, führe folgenden Befehl aus:

Die Ausgabe könnte wie folgt aussehen:

-rwxr-xr-x 1 user group 1024 Jan 1 12:00 file.txt

Die Ausgabe erklärt sich folgendermaßen:

  • : file.txt ist eine reguläre Datei.
  • rwx: Der Eigentümer hat Lese-, Schreib- und Ausführungsrechte.
  • r-x: Die Gruppe darf lesen und ausführen.
  • r-x: Andere Benutzer dürfen ebenfalls lesen und ausführen.

Verzeichnisberechtigungen anzeigen

Verwende ls -ld, um die Rechte des Verzeichnisses selbst anzuzeigen:

Beispielausgabe:

drwxr-xr-x 2 user group 4096 Jan 1 12:30 /var/www/html

Die Ausgabe lässt sich wie folgt interpretieren:

  • d: /var/www/html ist ein Verzeichnis.
  • rwx: Der Eigentümer darf lesen, schreiben und ausführen.
  • r-x: Die Gruppe hat Lese- und Ausführungsrechte.
  • r-x: Andere Benutzer dürfen ebenfalls lesen und ausführen.

So änderst du Dateiberechtigungen unter Linux

Mit dem Befehl chmod kannst du unter Linux die Rechte von Dateien und Verzeichnissen anpassen. Dabei stehen zwei Modi zur Verfügung: der numerische und der symbolische Modus. Nachfolgend findest du Schritt-für-Schritt-Anleitungen für beide Varianten.

Allgemeine Syntax von chmod

So sieht der grundsätzliche Aufbau des Befehls aus:

$ chmod [Berechtigungen] [Datei oder Verzeichnis]

Berechtigungen im numerischen Modus ändern

Im numerischen Modus werden Berechtigungen mit einer dreistelligen Zahl festgelegt. Jede Ziffer steht für die Rechte des Eigentümers, der Gruppe und der anderen Nutzer. Die Ziffer ergibt sich aus der Summe der folgenden Werte:

  • Lesen (r): 4
  • Schreiben (w): 2
  • Ausführen (x): 1
  • Kein Zugriff (-): 0

Beispiele:

file.txt auf Modus 755 setzen:

Damit erhält der Eigentümer volle Rechte, während Gruppe und andere nur Lese- und Ausführungsrechte haben.

/var/www/html auf Modus 755 setzen:

$ sudo chmod 755 /var/www/html

Der Eigentümer erhält vollen Zugriff, andere Nutzer dürfen lesen und ausführen.

Berechtigungen rekursiv auf alle Inhalte anwenden:

$ sudo chmod -R 755 /var/www/html

Alle Dateien und Unterverzeichnisse erhalten 755-Rechte. Nur der Eigentümer darf Inhalte verändern.

Berechtigungen im symbolischen Modus ändern

Im symbolischen Modus werden Buchstaben zur Darstellung von Benutzergruppen und Aktionen verwendet:

  • u: Eigentümer
  • g: Gruppe
  • o: Andere Benutzer
  • a: Alle (Eigentümer, Gruppe und Andere)

Folgende Operatoren definieren die Aktion:

  • +: Rechte hinzufügen
  • -: Rechte entfernen
  • =: Rechte explizit setzen (alle vorhandenen überschreiben)

Syntax im symbolischen Modus:

$ chmod [Benutzerklasse][Operator][Rechte] [Datei oder Verzeichnis]

Beispiele:

Volle Rechte für den Eigentümer von file.txt gewähren:

Ausführungsrecht für die Gruppe von /var/www/html entfernen:

$ sudo chmod g-x /var/www/html

Leserecht für alle auf file.txt setzen:

Eigentümerrechte auf nur Lesen beschränken:

Rechte rekursiv für alle Benutzer setzen (Lesen und Ausführen):

$ sudo chmod -R a+rx /var/www/html

Damit erhalten alle Nutzer Leserechte und können die Verzeichnisse durchlaufen.

Lese- und Schreibrechte gleichzeitig für Eigentümer und Gruppe erteilen:

Unterschiedliche Rechte für mehrere Benutzerklassen in einem Befehl setzen:

$ chmod u+rwx,g+w,o+x file.txt

Das gewährt dem Eigentümer alle Rechte, der Gruppe Schreibrechte und anderen Nutzern Ausführungsrechte für file.txt.

So setzt du spezielle Berechtigungen unter Linux: Sticky Bit, SUID und SGID

Besondere Berechtigungsbits wie das Sticky Bit, SUID (Set User ID) und SGID (Set Group ID) sind wichtig, um den Zugriff auf Dateien und Verzeichnisse in Mehrbenutzerumgebungen gezielt zu steuern. Sie bieten erweiterte Kontrolle über das Verhalten beim Zugriff auf bestimmte Ressourcen.

Sticky Bit für Verzeichnisschutz

Das Sticky Bit wird ausschließlich auf Verzeichnisse angewendet. Es bewirkt, dass nur der Eigentümer eines darin befindlichen Elements dieses umbenennen, verschieben oder löschen darf – unabhängig von den Verzeichnisrechten. Es lässt sich sowohl symbolisch als auch numerisch setzen.

Sticky Bit symbolisch aktivieren:

$ sudo chmod +t /var/www/html

Sticky Bit mit 755-Rechten numerisch setzen:

$ sudo chmod 1755 /var/www/html

Bedeutung der Ziffern:

  • 1: Aktiviert das Sticky Bit
  • 7: Vollzugriff für den Eigentümer
  • 5: Lese- und Ausführungsrechte für Gruppe und andere

Überprüfen, ob das Sticky Bit aktiv ist:

Beispielausgabe:

drwxr-xr-t 2 user group 4096 Jan 1 12:00 /var/www/html

Das t am Ende zeigt, dass das Sticky Bit aktiv ist.

SUID – Datei mit Rechten des Eigentümers ausführen

Mit SUID wird eine Datei beim Ausführen nicht mit den Rechten des ausführenden Nutzers, sondern mit denen des Dateieigentümers ausgeführt. Das ist besonders bei Programmen hilfreich, die erhöhte Rechte benötigen.

Beispiel: Skript-Datei erstellen:

SUID symbolisch aktivieren:

SUID numerisch aktivieren:

Bedeutung:

  • 4: Aktiviert SUID
  • 7: Volle Rechte für den Eigentümer
  • 5: Lesen und Ausführen für Gruppe und andere

Überprüfen, ob SUID gesetzt ist:

Beispielausgabe:

-rwsr-xr-x 1 root root 1024 Jan 15 20:43 hello.sh

Das s im Eigentümerabschnitt zeigt, dass SUID aktiv ist.

SGID – Datei mit Gruppenrechten ausführen

Mit SGID wird eine Datei oder ein Verzeichnis mit den Rechten der zugeordneten Gruppe ausgeführt. Bei Verzeichnissen erben neue Dateien automatisch die Gruppen-ID des übergeordneten Verzeichnisses.

SGID auf Datei anwenden:

SGID auf Verzeichnis anwenden:

$ sudo chmod g+s /var/www/html

SGID und 755 gemeinsam numerisch setzen:

$ sudo chmod 2755 hello.sh

Bedeutung:

  • 2: Aktiviert SGID
  • 7: Volle Rechte für Eigentümer
  • 5: Lesen und Ausführen für Gruppe und andere

Prüfen, ob SGID aktiv ist:

Beispielausgabe:

-rwxr-sr-x 1 user group 123456 Jan 1 12:00 hello.sh

Das s im Gruppenbereich zeigt, dass SGID aktiv ist.

SGID auf Verzeichnis prüfen:

Beispielausgabe:

drwxr-sr-x 2 user group 4096 Jan 1 12:00 /var/www/html

Das s im Gruppenbereich zeigt, dass das SGID-Bit auf dem Verzeichnis aktiv ist.

So änderst du den Eigentümer von Dateien und Verzeichnissen unter Linux

Mit dem Befehl chown kannst du unter Linux den Benutzer- und Gruppeneigentümer von Dateien und Verzeichnissen festlegen oder anpassen. Im Folgenden findest du eine Übersicht, wie du Eigentumsrechte korrekt verwaltest.

Grundlegende Syntax von chown

Die allgemeine Syntax zur Änderung des Besitzers und der Gruppe lautet:

$ chown [Optionen] benutzer:gruppe [Datei/Verzeichnis]

Beispiele zur Eigentumsänderung

Setze linuxuser als neuen Eigentümer von file.txt, ohne die Gruppe zu ändern:

$ sudo chown linuxuser file.txt

Ändere nur die Gruppenzugehörigkeit von /var/www/html auf www-data:

$ sudo chown :www-data /var/www/html

Ändere sowohl den Benutzer als auch die Gruppe des Verzeichnisses auf www-data:

$ sudo chown www-data:www-data /var/www/html

Wende die Änderung rekursiv auf alle Inhalte im Verzeichnis an:

$ sudo chown -R www-data:www-data /var/www/html

Kopiere die Eigentumsrechte von /var/www/html auf file.txt mit der Option --reference:

$ sudo chown --reference=/var/www/html file.txt

Eigentümerinformationen prüfen

Zeige den aktuellen Eigentümer von file.txt und dem Verzeichnis /var/www/html an:

$ ls -l file.txt && ls -ld /var/www/html

Beispielausgabe:

-rwxr-xr-- 1 www-data www-data 1024 Jan 1 12:00 file.txt
drwxr-xr-x 2 www-data www-data 4096 Jan 1 12:30 /var/www/html

Fazit

Mit den Befehlen chmod und chown hast du umfassende Kontrolle über die Rechtevergabe auf deinem Linux-System. Diese Rechte bestimmen, wie Benutzer mit Dateien und Verzeichnissen interagieren dürfen – ob sie sie lesen, ändern oder ausführen dürfen. Für weiterführende Informationen kannst du die Handbuchseiten aufrufen:


Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren:

Moderne Hosting Services mit Cloud Server, Managed Server und skalierbarem Cloud Hosting für professionelle IT-Infrastrukturen

VeraCrypt unter Ubuntu 24.04 installieren & nutzen

Security, Tutorial
VeraCrypt unter Ubuntu 24.04 installieren – Schritt-für-Schritt-Anleitung VeraCrypt ist eine kostenlose Open-Source-Verschlüsselungslösung, mit der sich vertrauliche Daten wie Dateien, Ordner und ganze Laufwerke absichern lassen. Um diese leistungsstarke Sicherheitssoftware optimal…