Sparen Sie 15% bei allen Hosting-Diensten

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

Benutze den Code: Skills Anfangen
Abschnitte
Betriebssysteme Linux Virtuelle Server

Linux-Dateiberechtigungen verstehen und verwalten

Linux-Dateiberechtigungen sind einer der grundlegendsten – und am häufigsten missverstandenen – Aspekte der Systemverwaltung. Egal, ob Sie einen Produktions-Webserver verwalten, Anwendungen bereitstellen oder Automatisierungsskripte schreiben, ein solides Verständnis des Linux-Berechtigungsmodells ist unverzichtbar. Wenn Sie es falsch machen, riskieren Sie Datenverletzungen, fehlgeschlagene Bereitstellungen oder gesperrte Dienste. Wenn Sie es richtig machen, haben Sie ein leistungsstarkes, granulares Sicherheitsframework, das für Sie arbeitet.

Dieser Leitfaden behandelt alles, was Sie wissen müssen: wie das Berechtigungsmodell funktioniert, wie Sie Berechtigungen lesen und ändern, wie Sie die Eigentumsrechte verwalten und wie Sie mit erweiterten Berechtigungsbits wie SUID, SGID und dem Sticky Bit umgehen.

Das Linux-Dateiberechtigungsmodell erklärt

Jede Datei und jedes Verzeichnis in einem Linux-System hat einen Satz von Zugriffsrechten. Diese Rechte sind auf drei Benutzerklassen und drei Berechtigungstypen verteilt.

Die drei Benutzerklassen

KlasseBeschreibung
BesitzerDer Benutzer, dem die Datei gehört
GruppeAlle Benutzer, die zur zugewiesenen Gruppe der Datei gehören
AndereAlle anderen auf dem System

Die drei Berechtigungstypen

BerechtigungSymbolBedeutung
LesenrDateiinhalte anzeigen oder Verzeichnisinhalte auflisten
SchreibenwEine Datei oder ein Verzeichnis ändern
AusführenxEine Datei als Programm ausführen oder ein Verzeichnis betreten/durchlaufen

Zusammen definieren diese neun Bits (drei Klassen × drei Berechtigungen) das vollständige Zugriffskontrollprofil für jedes Objekt im Dateisystem.

Wie man Dateiberechtigungen mit ls -l anzeigt

Der schnellste Weg, um Berechtigungen zu überprüfen, ist der Befehl ls -l:

ls -l myscript.sh

Beispielausgabe:

-rwxr-xr-- 1 alice devs 2048 Jan 25 10:00 myscript.sh

So lesen Sie die Berechtigungszeichenkette Zeichen für Zeichen:

ZeichenBedeutung
-Dateityp (- = reguläre Datei, d = Verzeichnis, l = symbolischer Link)
rwxBerechtigungen des Eigentümers: Lesen, Schreiben, Ausführen
r-xBerechtigungen der Gruppe: Lesen, Ausführen (kein Schreiben)
r--Berechtigungen für andere: Nur Lesen

In diesem Beispiel hat alice (der Eigentümer) vollständigen Zugriff, Mitglieder der Gruppe devs können die Datei lesen und ausführen, und alle anderen können sie nur lesen.

Berechtigungen mit chmod ändern

Der chmod Befehl ändert Dateiberechtigungen. Er unterstützt zwei Modi: symbolisch und numerisch (oktal).

Symbolischer Modus

Der symbolische Modus verwendet Buchstaben und Operatoren, um Berechtigungen hinzuzufügen (+), zu entfernen (-) oder festzulegen (=):

chmod u+x myscript.sh      # Add execute permission for the owner
chmod g-w myscript.sh      # Remove write permission from the group
chmod o=r myscript.sh      # Set read-only for others (exactly)
chmod a+x myscript.sh      # Add execute for all (owner, group, others)

Die Zielklassen sind: u (Benutzer/Eigentümer), g (Gruppe), o (Andere), a (Alle).

Numerischer (Oktal) Modus

Jeder Berechtigungstyp hat einen numerischen Wert: r = 4, w = 2, x = 1. Sie addieren diese zusammen, um eine einzelne Ziffer pro Klasse zu erhalten.

OktalBinärBerechtigungen
7111rwx
6110rw-
5101r-x
4100r--
0000---

Häufige Beispiele:

chmod 755 myscript.sh   # Owner: rwx | Group: r-x | Others: r-x
chmod 644 file.txt      # Owner: rw- | Group: r-- | Others: r--
chmod 700 script.sh     # Owner: rwx | Group: --- | Others: ---
chmod 600 secret.key    # Owner: rw- | Group: --- | Others: ---

> Schnellreferenz: 755 ist der Standard für öffentlich zugängliche Skripte und Verzeichnisse. 644 ist der Standard für lesbare Konfigurationsdateien. 600 ist ideal für private Schlüssel und vertrauliche Anmeldedaten.

Verwaltung der Eigentümerschaft mit chown und chgrp

Berechtigungen ergeben nur im Kontext der Eigentümerschaft Sinn. Die Befehle chown und chgrp ermöglichen es Ihnen, Dateien dem richtigen Benutzer und der richtigen Gruppe zuzuweisen.

Dateieigentümer ändern

chown alice file.txt

Gruppe ändern

chgrp devs file.txt

Eigentümer und Gruppe gleichzeitig ändern

chown bob:admins file.txt

Änderungen rekursiv anwenden

Das Flag -R wendet Eigentümerschaftsänderungen auf ein Verzeichnis und seinen gesamten Inhalt an — essentiell beim Einrichten von Web-Server-Dokumentwurzeln:

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

Dies ist ein kritischer Schritt bei der Bereitstellung von Webanwendungen in einer VPS Hosting-Umgebung und stellt sicher, dass der Web-Server-Prozess den korrekten Zugriff zum Bereitstellen von Dateien hat.

Special Permission Bits: SUID, SGID, and Sticky Bit

Beyond the standard nine permission bits, Linux supports three special modes that modify default behavior in important ways.

1. SUID — Set User ID

Applies to: Executable files

When the SUID bit is set on an executable, it runs with the privileges of the file’s owner, not the user who launched it.

chmod u+s /usr/bin/passwd

ls -l output:

-rwsr-xr-x 1 root root 54256 Jan 10 08:00 /usr/bin/passwd

Notice the s in place of the owner’s x. This is how /usr/bin/passwd can update /etc/shadow (a root-owned file) even when run by a regular user.

> Security note: Be very cautious about setting SUID on custom scripts. A misconfigured SUID binary is a classic privilege escalation vector.

2. SGID — Set Group ID

Applies to: Executable files and directories

  • On files: The file runs with the group privileges of the file’s group owner.
  • On directories: New files created inside the directory automatically inherit the directory’s group, rather than the creating user’s primary group.
chmod g+s /opt/project

ls -l output:

drwxr-sr-x 2 alice devs 4096 Jan 25 10:00 /opt/project

SGID on directories is extremely useful for shared development folders where multiple team members need consistent group ownership on all new files.

3. Sticky Bit

Applies to: Directories

When the sticky bit is set on a directory, only the file’s owner (or root) can delete or rename that file — even if other users have write permission on the directory.

chmod +t /shared/folder

ls -ld output for /tmp:

drwxrwxrwt 10 root root 4096 Jan 28 12:00 /tmp

The t at the end indicates the sticky bit is active. This is why /tmp is world-writable but users can’t delete each other’s temporary files.

Verständnis von umask — Standard-Berechtigungskontrolle

Wenn eine neue Datei oder ein Verzeichnis in Linux erstellt wird, erhält es nicht die maximalen Berechtigungen. Stattdessen wird eine umask (User File Creation Mask) angewendet, die Berechtigungen vom Standard subtrahiert.

Überprüfen Sie Ihre aktuelle umask

umask

Häufige Ausgabe: 0022

Wie umask funktioniert

ObjektStandard-MaximumMit umask `0022`Ergebnis
Datei666 (rw-rw-rw-)666 - 022644 (rw-r–r–)
Verzeichnis777 (rwxrwxrwx)777 - 022755 (rwxr-xr-x)

> Hinweis: Linux setzt das Execute-Bit auf neu erstellten Dateien standardmäßig nie, unabhängig von umask.

Temporäre umask festlegen

umask 0077    # New files: 600 (rw-------), New dirs: 700 (rwx------)

Dies ist nützlich in Skripten, die sensible temporäre Dateien erstellen. Für eine permanente Änderung fügen Sie den Befehl umask zur Profildatei Ihrer Shell hinzu (z. B. ~/.bashrc oder /etc/profile).

Rekursive Berechtigungskorrekturen

Eine häufige Aufgabe in der Praxis ist das Zurücksetzen von Berechtigungen in einem gesamten Projektverzeichnis — beispielsweise nach einer fehlgeschlagenen Bereitstellung oder einem FTP-Upload, der die Berechtigungen beschädigt hat. Der Schlüssel ist, unterschiedliche Berechtigungen für Verzeichnisse und Dateien festzulegen, da Verzeichnisse das Execute-Bit benötigen, um durchlaufbar zu sein.

# Set all directories to 755
find /var/www/myapp -type d -exec chmod 755 {} ;

# Set all files to 644
find /var/www/myapp -type f -exec chmod 644 {} ;

Wenn Ihre Anwendung spezifische ausführbare Skripte hat, beheben Sie diese danach separat:

chmod 755 /var/www/myapp/bin/*.sh

Dieses Muster ist für jeden unverzichtbar, der Web-Hosting-Umgebungen verwaltet. Wenn Sie PHP-, Python- oder Node.js-Anwendungen auf einem VPS mit cPanel ausführen, sind falsche Dateiberechtigungen eine der häufigsten Ursachen für 403 Forbidden Fehler und fehlgeschlagene Skriptausführung.

Praktische Berechtigungsreferenz für häufige Szenarien

SzenarioEmpfohlene BerechtigungenBefehl
Öffentliche Webdateien (HTML, CSS, JS)644chmod 644 index.html
Webverzeichnisse755chmod 755 /var/www/html
PHP/Python-Skripte644 oder 755Hängt von der Ausführungsmethode ab
Private SSH-Schlüssel600chmod 600 ~/.ssh/id_rsa
.ssh-Verzeichnis700chmod 700 ~/.ssh
Gemeinsames Projektverzeichnis2775 (SGID)chmod 2775 /opt/project
Weltbeschreibbares Temp-Verzeichnis1777 (sticky)chmod 1777 /tmp/shared
Konfigurationsdateien mit Geheimnissen600chmod 600 .env

Linux-Dateiberechtigungen und Serversicherheit

Das Verständnis von Dateiberechtigungen ist nicht nur eine akademische Übung — es hat direkte, praktische Auswirkungen auf die Serversicherheit und Stabilität.

Häufige Sicherheitsfehler, die vermieden werden sollten:

  • Festlegen von 777 auf Web-Verzeichnissen. Dies gibt jedem Lese-, Schreib- und Ausführungszugriff — eine kritische Sicherheitslücke, wenn Ihr Server kompromittiert ist oder PHP-Code-Injection möglich ist.
  • Weltlesbare Konfigurationsdateien hinterlassen. Dateien wie .env, wp-config.php oder Datenbankzugangsdaten sollten 600 oder 640 sein.
  • Eigentümerschaft ignorieren. Selbst wenn die Berechtigungen korrekt aussehen, wenn die falsche Benutzer eine Datei besitzt, kann Ihr Webserver oder Anwendungs-Daemon sie möglicherweise nicht lesen.
  • Rekursives chown auf Systemverzeichnissen. Das unbedachte Ausführen von chown -R auf /etc oder /usr kann Ihr gesamtes System beschädigen.

Wenn Sie eine Produktionsumgebung auf Dedicated Servers betreiben, ist die Implementierung einer strikten Berechtigungsrichtlinie einer der ersten Härtungsschritte, die Sie nach der Ersteinrichtung durchführen sollten.

Für Teams, die mehrere Websites oder Anwendungen verwalten, können VPS Control Panels die Verwaltung von Berechtigungen durch grafische Dateimanager vereinfachen, obwohl Kenntnisse in der Befehlszeile für erweiterte Konfigurationen weiterhin erforderlich sind.

Schnellbefehlsreferenz

# View permissions
ls -l filename
ls -ld directory/

# Change permissions (symbolic)
chmod u+x file        # Add execute for owner
chmod g-w file        # Remove write for group
chmod o=r file        # Set read-only for others
chmod a+r file        # Add read for all

# Change permissions (numeric)
chmod 755 file        # rwxr-xr-x
chmod 644 file        # rw-r--r--
chmod 600 file        # rw-------
chmod 700 file        # rwx------

# Change ownership
chown user file
chgrp group file
chown user:group file
chown -R user:group directory/

# Special bits
chmod u+s file        # Set SUID
chmod g+s directory   # Set SGID
chmod +t directory    # Set sticky bit

# umask
umask                 # Show current umask
umask 0022            # Set umask for session

# Recursive fixes
find /path -type d -exec chmod 755 {} ;
find /path -type f -exec chmod 644 {} ;

Fazit

Linux-Dateiberechtigungen bilden das Rückgrat der Systemsicherheit, der Zugriffskontrolle für mehrere Benutzer und der zuverlässigen Anwendungsbereitstellung. Das Modell ist elegant in seiner Einfachheit — drei Klassen, drei Berechtigungstypen, eine Handvoll spezieller Bits — doch mächtig genug, um alles von einer persönlichen Entwicklungsmaschine bis zu einem hochfrequentierten Produktionsserver zu sichern.

Die Beherrschung von chmod, chown, umask und der speziellen Berechtigungsbits gibt dir das Vertrauen, Anwendungen korrekt bereitzustellen, Zugriffsfehler schnell zu beheben und deine Server gegen unbefugten Zugriff zu schützen.

Egal ob du mit Shared Web Hosting anfängst oder auf eine vollständig verwaltete VPS Hosting-Umgebung skalierst, ein solides Verständnis von Linux-Dateiberechtigungen ist eine der höchstwertigen Fähigkeiten, die du als Systemadministrator oder Entwickler entwickeln kannst. Investiere die Zeit, um es gründlich zu verstehen — deine Server (und deine Benutzer) werden dir dankbar sein.