Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

Wie man Dateiberechtigungen in Linux überprüft: Ein vollständiger Leitfaden

Linux betreibt die Mehrheit der Server der Welt — von VPS Hosting Umgebungen bis hin zu Enterprise-Grade Dedicated Servers — und das aus gutem Grund. Es ist schnell, stabil und mit Sicherheit im Kern aufgebaut. Eine der grundlegendsten Säulen dieser Sicherheit ist das Dateiberechtigungssystem: ein präziser, eleganter Mechanismus, der genau kontrolliert, wer eine Datei oder ein Verzeichnis auf dem System lesen, ändern oder ausführen kann.

Egal ob Sie ein Entwickler sind, der eine Webanwendung bereitstellt, ein Systemadministrator, der einen Server absichert, oder ein Anfänger, der die Befehlszeile erlernt — das Verständnis, wie man Dateiberechtigungen in Linux überprüft und interpretiert, ist eine unverzichtbare Fähigkeit. Dieser Leitfaden behandelt alles, was Sie wissen müssen — von den Grundlagen des Berechtigungsmodells bis hin zu erweiterten Special Bits — mit praktischen Befehlen und realen Beispielen.

Was sind Linux-Dateiberechtigungen?

Jede einzelne Datei und jedes Verzeichnis in Linux hat einen Satz von Berechtigungen, die daran angehängt sind. Diese Berechtigungen definieren, welche Aktionen zulässig sind und von wem. Es gibt drei Kern-Berechtigungstypen:

BerechtigungSymbolWas es bei einer Datei bewirktWas es bei einem Verzeichnis bewirkt
LesenrDen Inhalt der Datei anzeigenDie Namen von Dateien darin auflisten
SchreibenwDie Datei ändern oder löschenDateien darin erstellen oder entfernen
AusführenxDie Datei als Programm ausführenDas Verzeichnis betreten (darin navigieren)

Diese drei Berechtigungen werden unabhängig auf drei unterschiedliche Benutzerkategorien angewendet:

  • Eigentümer (Benutzer) — Der Benutzer, dem die Datei gehört, normalerweise ihr Ersteller.
  • Gruppe — Jeder Benutzer, der zur zugewiesenen Gruppe der Datei gehört.
  • Andere — Alle anderen im System.

Diese Drei-mal-Drei-Matrix von Berechtigungen gibt Linux-Administratoren granulare, leistungsstarke Kontrolle über den Zugriff auf jede Ressource im System.

So überprüfen Sie Dateiberechtigungen: Der ls -l Befehl

Die schnellste und am häufigsten verwendete Methode zum Überprüfen von Dateiberechtigungen ist der ls -l Befehl (Langformat-Auflistung).

ls -l file.txt

Beispielausgabe:

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 file.txt

Lassen Sie uns jede Komponente dieser Ausgabe aufschlüsseln:

-  rw-  r--  r--   1   alice   developers   1024   Aug 16 12:30   file.txt
│   │    │    │    │     │          │          │         │             │
│   │    │    │    │     │          │          │         │             └─ Filename
│   │    │    │    │     │          │          │         └─ Last modified
│   │    │    │    │     │          │          └─ File size (bytes)
│   │    │    │    │     │          └─ Group name
│   │    │    │    │     └─ Owner name
│   │    │    │    └─ Number of hard links
│   │    │    └─ Others' permissions
│   │    └─ Group's permissions
│   └─ Owner's permissions
└─ File type (- = regular file, d = directory, l = symlink)

So teilt uns -rw-r--r-- mit:

  • Eigentümer (alice): Lesen + Schreiben (rw-)
  • Gruppe (developers): Nur Lesen (r--)
  • Andere: Nur Lesen (r--)

Überprüfung von Berechtigungen für mehrere Dateien

Um Berechtigungen für alle Dateien in einem Verzeichnis auf einmal anzuzeigen:

ls -la /var/www/html

Das -a Flag schließt versteckte Dateien ein (solche, die mit einem Punkt beginnen). Dies ist besonders nützlich bei der Überprüfung von Webserver-Verzeichnissen in einer Shared Web Hosting oder VPS Umgebung.

Detaillierte Berechtigungsinformationen mit stat abrufen

Für eine umfassendere Aufschlüsselung – einschließlich symbolischer und numerischer Darstellungen – verwenden Sie den Befehl stat:

stat file.txt

Beispielausgabe:

  File: file.txt
  Size: 1024            Blocks: 8          IO Block: 4096   regular file
Device: fd01h/64769d    Inode: 131073      Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)
Access: 2024-08-16 12:30:00.000000000 +0000
Modify: 2024-08-16 12:30:00.000000000 +0000
Change: 2024-08-16 12:30:00.000000000 +0000

Die wichtigste Zeile ist:

Access: (0644/-rw-r--r--)  Uid: ( 1000/   alice)   Gid: ( 1000/developers)

Dies gibt Ihnen:

  • Numerische (oktale) Notation: 0644
  • Symbolische Notation: -rw-r--r--
  • User ID (UID) und Group ID (GID) mit ihren lesbaren Namen

Der Befehl stat ist von unschätzbarem Wert bei der Behebung von Berechtigungsfehlern auf Produktionsservern, da er alle erforderlichen Informationen in einer einzigen Ausgabe bereitstellt.

Verständnis der numerischen (oktalen) Berechtigungsnotation

Linux-Berechtigungen können als Zahlen ausgedrückt werden, was das Format ist, das von Befehlen wie chmod verwendet wird. Jeder Berechtigungstyp wird einem Wert zugewiesen:

BerechtigungNumerischer Wert
Lesen (r)4
Schreiben (w)2
Ausführen (x)1
Keine Berechtigung (-)0

Sie berechnen den Berechtigungswert für jede Benutzerkategorie durch Addition der Werte:

KombinationBerechnungNumerischer Wert
rwx4 + 2 + 17
rw-4 + 2 + 06
r-x4 + 0 + 15
r--4 + 0 + 04
---0 + 0 + 00

Eine dreistellige Oktalzahl stellt den vollständigen Berechtigungssatz dar:

0644  →  Owner: 6 (rw-)  |  Group: 4 (r--)  |  Others: 4 (r--)
0755  →  Owner: 7 (rwx)  |  Group: 5 (r-x)  |  Others: 5 (r-x)
0700  →  Owner: 7 (rwx)  |  Group: 0 (---)  |  Others: 0 (---)

Überprüfung von Berechtigungen für Verzeichnisse

Verzeichnisse verwenden das gleiche Berechtigungsmodell, aber die Bedeutung jedes Bits ist leicht unterschiedlich. Verwenden Sie ls -ld (beachten Sie das -d Flag), um ein Verzeichnis selbst zu überprüfen, anstatt seinen Inhalt:

ls -ld myfolder

Beispielausgabe:

drwxr-x--- 2 alice developers 4096 Aug 16 12:30 myfolder

Das führende d bestätigt, dass dies ein Verzeichnis ist. Die Berechtigungen werden wie folgt aufgeschlüsselt:

  • Eigentümer (alice): rwx — Kann Dateien auflisten, erstellen/löschen und das Verzeichnis betreten
  • Gruppe (developers): r-x — Kann Dateien auflisten und betreten, aber nicht erstellen oder löschen
  • Andere: --- — Kein Zugriff

> Wichtig: Das Execute-Bit (x) für ein Verzeichnis bedeutet die Möglichkeit, es zu betreten (d. h. cd zu verwenden). Ohne x kann ein Benutzer nicht in das Verzeichnis navigieren, selbst wenn er Leseberechtigung hat. Dies ist eine häufige Quelle der Verwirrung für Anfänger.

Spezielle Berechtigungsbits: setuid, setgid und Sticky Bit

Über die standardmäßigen neun Berechtigungsbits hinaus unterstützt Linux drei spezielle Berechtigungsbits, die erweiterte Zugriffskontrolle bieten:

1. setuid (s auf dem Execute-Bit des Besitzers)

Wenn auf einer ausführbaren Datei gesetzt, wird das Programm mit den Privilegien des Dateieigentümers ausgeführt, nicht mit denen des aufrufenden Benutzers. So können Befehle wie passwd normalen Benutzern ermöglichen, /etc/shadow zu ändern (das root gehört).

ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 54256 Mar 27 2023 /usr/bin/passwd

Das s in der Execute-Position des Besitzers zeigt setuid an.

2. setgid (s auf dem Execute-Bit der Gruppe)

Bei einer Datei wird das Programm mit den Privilegien der Gruppe ausgeführt. Bei einem Verzeichnis erben neue Dateien, die darin erstellt werden, automatisch die Gruppe des Verzeichnisses — nützlich für gemeinsame Projektordner.

ls -ld /shared/project
drwxrwsr-x 2 alice developers 4096 Aug 16 12:30 /shared/project

3. Sticky Bit (t auf dem Execute-Bit der Anderen)

Wenn auf einem Verzeichnis gesetzt, können nur der Dateieigentümer (oder root) Dateien darin löschen oder umbenennen, auch wenn andere Schreibberechtigung haben. Dies ist die Standardkonfiguration für /tmp:

ls -ld /tmp
drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

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

Numerische Darstellung der speziellen Bits:

Spezielles BitNumerischer Wert
setuid4000
setgid2000
Sticky bit1000

Also drwxrwxrwt = 1777 (1000 + 777).

Vollständige Berechtigungsreferenztabelle

SymbolischNumerischBedeutung für eine DateiBedeutung für ein Verzeichnis
---0Kein ZugriffKein Zugriff
--x1Nur AusführungNur Eintritt
-w-2Nur SchreibenInhalte ändern (mit x)
-wx3Schreiben + AusführungEintritt und Änderung
r--4Nur LesenNamen auflisten (erfordert x um nützlich zu sein)
r-x5Lesen + AusführungAuflisten und Eintritt
rw-6Lesen + SchreibenAuflisten und Änderung (ohne Eintritt)
rwx7Vollständiger ZugriffVollständige Kontrolle

Praktische Berechtigungsbeispiele

Hier sind die häufigsten Berechtigungsmuster, die Sie in der Praxis antreffen werden:

-rw-r--r-- (0644) — Standarddatei

-rw-r--r-- 1 alice developers 1024 Aug 16 12:30 config.txt

Besitzer kann lesen und schreiben. Gruppe und andere können nur lesen. Typisch für Konfigurationsdateien und Webinhalte.

-rwxr-xr-x (0755) — Ausführbares Skript oder Binärdatei

-rwxr-xr-x 1 alice developers 4096 Aug 16 12:30 deploy.sh

Besitzer hat vollständigen Zugriff. Alle anderen können lesen und ausführen, aber nicht ändern. Standard für Shell-Skripte, Webserver-Binärdateien und öffentliche ausführbare Dateien.

-rw------- (0600) — Private Datei

-rw------- 1 alice alice 1679 Aug 16 12:30 id_rsa

Nur der Besitzer kann lesen oder schreiben. Kein Zugriff für andere. Erforderlich für SSH-Privatschlüssel — SSH weigert sich, eine Schlüsseldatei mit umfassenderen Berechtigungen zu verwenden.

drwxr-xr-x (0755) — Standard öffentliches Verzeichnis

drwxr-xr-x 5 alice developers 4096 Aug 16 12:30 public_html

Häufig für Web-Root-Verzeichnisse. Besitzer hat vollständige Kontrolle; andere können durchsuchen und betreten.

drwx------ (0700) — Privates Verzeichnis

drwx------ 3 alice alice 4096 Aug 16 12:30 .ssh

Vollständig privat. Nur der Besitzer kann zugreifen. Erforderlich für das ~/.ssh Verzeichnis.

drwxrwxrwt (1777) — Weltweit beschreibbar mit Sticky Bit

drwxrwxrwt 12 root root 4096 Aug 16 12:30 /tmp

Jeder kann Dateien erstellen, aber nur der Besitzer jeder Datei kann seine eigenen Dateien löschen.

Praktische Tipps für Server-Umgebungen

Wenn Sie einen Linux-Server verwalten — ob es sich um einen VPS mit einer Webanwendung, einen mit einem SSL Certificate gesicherten Mail-Server oder eine Maschine mit mehreren über Domain Registration registrierten Domains handelt — hier sind einige wichtige Best Practices für Berechtigungen:

  1. Setzen Sie niemals 777 auf Dateien oder Verzeichnisse, es sei denn, Sie haben einen sehr spezifischen, vorübergehenden Grund. Weltweit beschreibbare Dateien sind ein großes Sicherheitsrisiko.
  2. Webserver-Dateien (z. B. unter /var/www/) sollten typischerweise 644 für Dateien und 755 für Verzeichnisse sein, im Besitz Ihres Anwendungsbenutzers.
  3. SSH-Schlüssel müssen 600 für private Schlüssel und 644 für öffentliche Schlüssel sein. SSH erzwingt dies streng.
  4. Konfigurationsdateien mit Passwörtern oder API-Schlüsseln sollten 600 oder höchstens 640 sein.
  5. Verwenden Sie find, um Berechtigungen in einer Verzeichnisstruktur zu überprüfen:
   # Find all world-writable files (potential security risk)
   find /var/www -type f -perm -o+w

   # Find all SUID files (for security auditing)
   find / -type f -perm -4000 2>/dev/null

Schnellbefehlsreferenz

AufgabeBefehl
Berechtigungen einer Datei auflistenls -l filename
Berechtigungen aller Dateien in einem Verzeichnis auflistenls -la /path/to/dir
Berechtigungen eines Verzeichnisses selbst überprüfenls -ld /path/to/dir
Vollständige Details einschließlich numerischer Berechtigungen abrufenstat filename
Berechtigungen ändern (symbolisch)chmod u+x filename
Berechtigungen ändern (numerisch)chmod 755 filename
Dateieigentümer ändernchown user:group filename
Berechtigungen rekursiv ändernchmod -R 755 /path/to/dir
Weltweit beschreibbare Dateien findenfind . -perm -o+w -type f

Fazit

Das Verständnis von Linux-Dateiberechtigungen ist nicht nur eine akademische Übung — es ist eine praktische, tägliche Fähigkeit für jeden, der Server verwaltet, Anwendungen bereitstellt oder in einer Linux-Umgebung arbeitet. Zusammengefasst die wichtigsten Erkenntnisse:

  • Verwenden Sie ls -l für einen schnellen, benutzerfreundlichen Überblick über Berechtigungen für Dateien und Verzeichnisse.
  • Verwenden Sie stat, wenn Sie sowohl symbolische als auch numerische Darstellungen zusammen mit Eigentümerdetails benötigen.
  • Beherrschen Sie beide Notationen — symbolisch (rwx) und numerisch (755, 644) — da verschiedene Tools und Dokumentationen beide austauschbar verwenden.
  • Denken Sie an den Verzeichnisunterschied: das Ausführungsbit (x) in einem Verzeichnis bedeutet die Möglichkeit, es zu betreten, nicht es auszuführen.
  • Seien Sie sich spezieller Bits bewusst — setuid, setgid und das Sticky Bit — da sie häufig auf Produktionssystemen erscheinen und erhebliche Sicherheitsauswirkungen haben.

Eine ordnungsgemäße Berechtigungsverwaltung ist ein Eckpfeiler der Linux-Sicherheit. Egal, ob Sie ein persönliches Projekt auf VPS Hosting ausführen oder eine Flotte von Dedicated Servers verwalten, wenn Sie die Berechtigungen von Anfang an richtig einstellen, sparen Sie sich Sicherheitslücken, fehlerhafte Anwendungen und unzählige Stunden Fehlerbehebung in der Zukunft.