Dateiberechtigungen in Linux legen fest, wer Dateien lesen, schreiben und ausführen darf, und der Befehl chmod gibt Ihnen die volle Kontrolle darüber. In diesem Leitfaden lernen Sie Schritt für Schritt, wie chmod funktioniert, einschließlich numerischer und symbolischer Einstellungen, häufiger Fehler und Sicherheitstipps.


1. Was sind Dateiberechtigungen in Linux?

In Linux und Unix hat jede Datei und jedes Verzeichnis bestimmte Berechtigungen, die festlegen, wer Zugriff hat und was diese Person damit tun kann. Diese Berechtigungen sind in drei Kategorien aufgeteilt:

  • Eigentümer (user - u): Der Benutzer, der die Datei erstellt hat.
  • Gruppe (group - g): Andere Benutzer, die zur selben Gruppe gehören.
  • Andere (others - o): Alle, die weder Eigentümer sind noch zur Gruppe gehören.

Jede Datei hat drei Berechtigungen:

  • r (read) - Eine Datei lesen oder den Inhalt eines Verzeichnisses anzeigen.
  • w (write) - Eine Datei ändern oder löschen.
  • x (execute) - Eine Datei ausführen (zum Beispiel ein Skript oder Programm).

Die Berechtigungen einer Datei können Sie so anzeigen:

ls -l bestand.txt 

Die Ausgabe sieht zum Beispiel so aus:

-rw-r--r-- 1 gebruiker groep 1234 mrt 17 10:00 bestand.txt 

Hier sehen Sie:

  • rw- (Lesen und Schreiben für den Eigentümer)
  • r-- (nur Lesen für die Gruppe)
  • r-- (nur Lesen für andere)

2. Grundlegende Verwendung von chmod

Die allgemeine Syntax von chmod lautet:

chmod [opties] rechten bestand 

Beispiele:

  • chmod 755 script.sh → macht ein Skript für alle ausführbar.
  • chmod 644 document.txt → nur der Eigentümer kann schreiben, andere können lesen.

3. Numerischer Modus: chmod mit Zahlen

Sie können Berechtigungen mit einer Oktalnotation (Zahlen) festlegen. Jede Berechtigung hat einen numerischen Wert:

  • r = 4 (read)
  • w = 2 (write)
  • x = 1 (execute)

Kombinationen:

  • 7 (rwx) → Lesen, Schreiben und Ausführen.
  • 6 (rw-) → Lesen und Schreiben.
  • 5 (r-x) → Lesen und Ausführen.
  • 4 (r--) → Nur Lesen.

Beispiel:

chmod 755 script.sh 

Dabei erhält der Eigentümer volle Berechtigungen (rwx = 7), während Gruppe und andere nur Lese- und Ausführungsrechte erhalten (r-x = 5).


4. Symbolischer Modus: chmod mit Buchstaben

Statt mit Zahlen können Sie Berechtigungen auch mit Symbolen ändern:

  • u (user - Eigentümer)
  • g (group - Gruppe)
  • o (others - andere Benutzer)
  • a (all - alle)

Und mit Operatoren:

  • + (Berechtigungen hinzufügen)
  • - (Berechtigungen entfernen)
  • = (Berechtigungen exakt festlegen)

Beispiele:

chmod u+x script.sh # Geeft de eigenaar uitvoerrechten chmod g-w bestand.txt # Verwijdert schrijfrechten van de groep chmod o= bestand.txt # Verwijdert alle rechten van anderen 

5. Häufig verwendete chmod-Einstellungen

Hier sind einige Standardeinstellungen und wann Sie sie verwenden:

chmod-Code Beschreibung Anwendung
755 Eigentümer hat alle Rechte, andere nur Lesen/Ausführen Skripte und Programme
644 Eigentümer darf schreiben, andere dürfen lesen Konfigurationsdateien, Webseiten
700 Nur der Eigentümer hat Zugriff Private Dateien, SSH-Schlüssel
600 Nur der Eigentümer darf lesen/schreiben Sensible Dateien wie Passwörter
777 Alle haben volle Rechte (gefährlich!) Nur in Ausnahmefällen

6. Erweiterte Optionen

a) chmod rekursiv verwenden (-R)

Möchten Sie chmod auf ein ganzes Verzeichnis einschließlich Unterverzeichnissen und Dateien anwenden? Verwenden Sie die Option -R:

chmod -R 755 mijnmap/ 

Dadurch erhalten alle Dateien und Unterverzeichnisse innerhalb von mijnmap/ dieselben Berechtigungen.

b) SUID, SGID und das Sticky Bit

Neben den Standardberechtigungen gibt es drei spezielle Bits:

  • SUID (Set User ID - 4xxx): Lässt eine Datei immer als Eigentümer laufen.
  • SGID (Set Group ID - 2xxx): Neue Dateien in einem Verzeichnis erhalten automatisch die Gruppenrechte.
  • Sticky Bit (1xxx): Verhindert, dass andere Dateien in einem gemeinsam genutzten Verzeichnis löschen.

Beispiel:

chmod 4755 script.sh # SUID instellen chmod 2755 mijnmap/ # SGID instellen chmod 1777 /tmp # Sticky bit instellen (gebruikelijk voor de /tmp map) 

7. Anwendungen in der Praxis

a) Ein Skript ausführbar machen

Haben Sie ein Skript, das Sie ausführen möchten? Geben Sie ihm Ausführungsrechte:

chmod +x mijnscript.sh ./mijnscript.sh 

b) Dateien vor Änderungen schützen

Möchten Sie eine Datei vor unerwünschten Änderungen schützen?

chmod 444 belangrijk.txt # Alleen-lezen voor iedereen 

c) Richtige Berechtigungen für SSH-Keys

SSH-Schlüssel erfordern bestimmte Berechtigungen:

chmod 600 ~/.ssh/id_rsa # Privésleutel (alleen eigenaar mag lezen/schrijven) chmod 644 ~/.ssh/id_rsa.pub # Publieke sleutel (iedereen mag lezen) 

8. Häufige Fehler und Sicherheitsrisiken

a) Warum chmod 777 meistens eine schlechte Idee ist

Volle Berechtigungen (chmod 777) für eine Datei oder ein Verzeichnis bedeuten, dass jeder alles tun darf. Das ist ein großes Sicherheitsrisiko, vor allem für Webserver:

chmod 777 /var/www/html/index.php # Fout! Iedereen kan dit bestand aanpassen. 

Besser:

chmod 644 /var/www/html/index.php # Alleen de eigenaar kan schrijven. 

b) Häufige Fehler

  • Vergessen, einem Skript Ausführungsrechte zu geben:
    Lösung: chmod +x script.sh
  • Falsche Berechtigungen für SSH-Schlüssel:
    Lösung: chmod 600 ~/.ssh/id_rsa

9. Zusätzliche Tools für die Rechteverwaltung

Neben chmod gibt es noch weitere nützliche Befehle:

  • chown: Ändert den Eigentümer einer Datei.
    chown gebruiker:groep bestand.txt 
  • chgrp: Ändert nur die Gruppe einer Datei.
    chgrp groepnaam bestand.txt 
  • umask: Legt die Standard-Dateiberechtigungen beim Erstellen neuer Dateien fest.
    umask 022 # Nieuwe bestanden krijgen standaard 644, mappen 755 

10. Fazit: Best Practices

  • Seien Sie vorsichtig mit chmod 777: Verwenden Sie es nur, wenn es wirklich nötig ist.
  • Verwenden Sie numerische und symbolische Notation je nach Situation.
  • Machen Sie Skripte mit chmod +x ausführbar.
  • Schützen Sie sensible Dateien wie SSH-Schlüssel mit chmod 600.
  • Verwenden Sie chmod -R nur, wenn Sie sicher wissen, was Sie tun.

Mit diesem Wissen können Sie Dateiberechtigungen in Linux sicher und effektiv verwalten. 🚀

Auf der Suche nach Dedicated Servern? Sehen Sie sich unser Angebot an.