Skip to content

Kapitel 6: Dateiberechtigungsoperationen (Kernpunkt)

6.1 Bedeutung von Berechtigungen (r: lesen, w: schreiben, x: ausführen, unterschiedliche Wirkung auf Dateien/Verzeichnisse)

Berechtigungen verstehen:

  • r (read - 4): Lesen von Dateiinhalten oder Auflisten von Verzeichnissen
  • w (write - 2): Schreiben/Ändern von Dateiinhalten oder Erstellen/Löschen von Dateien in Verzeichnissen
  • x (execute - 1): Ausführen von Dateien (Programme/Scripts) oder Zugriff auf Verzeichnisse

Unterschied für Dateien und Verzeichnisse:

BerechtigungDateiVerzeichnis
r (lesen)Inhalt lesenDateien auflisten (ls)
w (schreiben)Inhalt ändernDateien erstellen/löschen
x (ausführen)Als Programm ausführenIn Verzeichnis wechseln (cd)

Berechtigungsgruppen:

  • u (user): Dateibesitzer
  • g (group): Benutzergruppe
  • o (others): Andere Benutzer
  • a (all): Alle oben genannten

6.2 Datei-/Verzeichnisberechtigungen anzeigen (ls -l Befehl interpretieren)

ls -l Ausgabe interpretieren:

bash
$ ls -l
-rw-r--r-- 1 benutzer gruppe 1234 Jan 1 12:00 datei.txt
drwxr-xr-x 2 benutzer gruppe 4096 Jan 1 12:00 ordner

Bedeutung der Spalten:

  1. Erstes Zeichen: Dateityp (-=Datei, d=Verzeichnis, l=Link)
  2. Nächste 9 Zeichen: Berechtigungen (3 Gruppen à 3 Zeichen: Besitzer, Gruppe, Andere)
  3. Zahl: Anzahl der Hardlinks
  4. Besitzername
  5. Gruppenname
  6. Dateigröße (Bytes)
  7. Änderungsdatum
  8. Dateiname

Berechtigungsbeispiel:

  • -rw-r--r--: Datei, Besitzer kann lesen/schreiben, Gruppe und Andere können nur lesen
  • drwxr-xr-x: Verzeichnis, Besitzer kann lesen/schreiben/ausführen, Gruppe und Andere können lesen/ausführen

6.3 Berechtigungen ändern (chmod-Befehl, Buchstabenmethode + Ziffernmethode, anfängerverständlich)

chmod - Change Mode:

Buchstabenmethode:

bash
chmod u+r datei.txt         # Besitzer Lesezugriff hinzufügen
chmod g+w datei.txt         # Gruppe Schreibzugriff hinzufügen
chmod o-x datei.txt         # Anderen Ausführungszugriff entfernen
chmod a+r datei.txt         # Allen Lesezugriff hinzufügen
chmod u=rw,g=r,o= datei.txt # Exakte Berechtigungen setzen

Ziffernmethode (Oktal):

bash
chmod 755 datei.txt         # rwxr-xr-x (Besitzer: rwx=7, Gruppe: r-x=5, Andere: r-x=5)
chmod 644 datei.txt         # rw-r--r-- (Besitzer: rw-=6, Gruppe: r--=4, Andere: r--=4)
chmod 700 privates_verz/    # rwx------ (Nur Besitzer hat Zugriff)

Berechnungstabelle:

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

Beispiel: rwx = 4+2+1 = 7, r-x = 4+0+1 = 5

6.4 Dateibesitzer und -gruppe ändern (chown, chgrp)

chown - Change Owner:

bash
chown neuer_besitzer datei.txt               # Besitzer ändern
chown neuer_besitzer:neue_gruppe datei.txt  # Besitzer und Gruppe ändern
chown -R benutzer:gruppe verzeichnis/        # Rekursiv für Verzeichnisse

chgrp - Change Group:

bash
chgrp neue_gruppe datei.txt                  # Gruppe ändern
chgrp -R neue_gruppe verzeichnis/            # Rekursiv für Verzeichnisse

Wichtige Hinweise:

  • Nur root kann den Besitzer ändern
  • Beispiel: sudo chown root:root datei.txt

6.5 Häufige Fallen für Anfänger: Lösungen bei unzureichenden Berechtigungen

Problem: "Permission denied"

Lösungen:

  1. Berechtigungen überprüfen: ls -l datei.txt
  2. Berechtigungen ändern: chmod +r datei.txt
  3. Als root ausführen: sudo befehl
  4. Besitzer ändern: sudo chown $USER datei.txt

Häufige Szenarien:

  • Kann Datei nicht ausführen: chmod +x skript.sh
  • Kann in Verzeichnis nicht wechseln: chmod +x verzeichnis/
  • Kann Datei nicht löschen: Berechtigungen des übergeordneten Verzeichnisses prüfen (chmod +w verzeichnis/)

Sicherheitstipps:

  • Vermeiden Sie chmod 777 (unsicher)
  • Geben Sie nur die minimal notwendigen Berechtigungen
  • Verwenden Sie sudo mit Bedacht

Frei für alle Anfänger