Linux · Tag 2 · Kapitel 04 von 6

Berechtigungen lesen

Jede Datei in Linux trägt eine kleine 10-Zeichen-Botschaft mit sich herum, die genau sagt: wer darf was. Heute lernst du, diese Botschaft fließend zu lesen. Nächstes Kapitel lernst du, sie zu schreiben.

📚 Kapitel 04 ⏱️ ca. 20 min Theorie + 10 min Lese-Übung 🔍 Lese-Übung 2.4
Inhalt dieses Kapitels
4.1

Wer darf was? Warum es Berechtigungen gibt

Einstieg

Linux ist von Anfang an als Multi-User-System gedacht. Auf einem Server arbeiten dutzende User gleichzeitig — du willst aber nicht, dass jeder die Passwort-Datei lesen oder die Konfiguration des Webservers ändern kann. Deswegen trägt jede Datei drei Informationen mit sich:

  • Wem gehört sie? (Owner)
  • Welche Gruppe darf damit arbeiten? (Group)
  • Was dürfen alle anderen? (Others)

Und für jede dieser drei Kategorien gibt es drei Rechte: lesen, schreiben, ausführen.

📌
Warum das wichtig ist

Das Berechtigungs-System ist das älteste Sicherheits-Konzept in Unix — von 1971. Es ist so einfach, dass es seit über 50 Jahren funktioniert, und so robust, dass auch moderne Container-Technologien wie Docker darauf aufbauen. Wer Linux-Berechtigungen versteht, versteht ~80 % aller Linux-Sicherheits-Themen.

4.2

ls -l zerlegen — die 10 Zeichen im Überblick

Pflicht
bash
$ ls -l bericht.txt
-rw-r--r-- 1 admin team 245 Mai 26 14:22 bericht.txt
- rw- r-- r-- 1 admin team 245 Mai 26 14:22 bericht.txt ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ Dateiname │ │ │ │ │ │ │ │ Zeitstempel │ │ │ │ │ │ │ Größe (Bytes) │ │ │ │ │ │ Gruppe │ │ │ │ │ Eigentümer (Owner) │ │ │ │ Link-Count │ │ │ Rechte für ANDERE (Others, "o") │ │ Rechte für die GRUPPE (Group, "g") │ Rechte für den EIGENTÜMER (User, "u") Typ (- = Datei, d = Dir, l = Symlink)

Die ersten 10 Zeichen ganz links sind das, worum es heute geht — der Rest ist Metadaten (Owner-Name, Gruppe, Größe, Datum, Name).

💡
Lerne, von links nach rechts zu lesen

Die 10 Zeichen liest man in vier Blöcken:

BlockPositionBedeutung
1Zeichen 1Datei-Typ
2Zeichen 2–4Rechte für User (Eigentümer)
3Zeichen 5–7Rechte für Group
4Zeichen 8–10Rechte für Others (alle anderen)

Diese Reihenfolge ist immer gleich. Wenn du sie einmal verinnerlicht hast, liest du jede ls -l-Zeile in Sekunden.

4.3

Position 1: Der Datei-Typ

Pflicht
ZeichenBedeutungBeispiel
-normale Datei-rw-r--r-- (bericht.txt)
dVerzeichnis (directory)drwxr-xr-x (Documents)
lSymbolischer Link (link)lrwxrwxrwx (aktuelles-log)
ccharacter device (z. B. /dev/null, Tastatur)crw-rw-rw-
bblock device (z. B. Festplatte /dev/sda)brw-rw----
pnamed pipe (FIFO)prw-r--r--
ssocket (Inter-Prozess-Kommunikation)srwxr-xr-x

Im Alltag siehst du fast nur drei Typen: - (Datei), d (Verzeichnis) und l (Symlink, aus Kapitel 03).

▶ Optional: Die selteneren Typen c, b, p, s

Die anderen vier — c (character device), b (block device), p (named pipe), s (socket) — gibt es vor allem in /dev/, /proc/ und /run/. Gut zu wissen, dass es sie gibt, aber selten selbst zu setzen. Anschauen kannst du sie so:

bash
# Verschiedene Typen sehen — Listing von /dev/
ls -l /dev/ | head -10
4.4

Positionen 2–10: User, Group, Others

Pflicht
BlockKürzelWer ist gemeint?
Positionen 2–4u (User)Der Eigentümer der Datei — meistens der, der sie erstellt hat
Positionen 5–7g (Group)Alle Mitglieder der Gruppe, die der Datei zugewiesen ist
Positionen 8–10o (Others)Alle anderen User auf dem System
-rw-r--r-- \_/\_/\_/ ↑ ↑ ↑ │ │ │ │ │ Others: r-- (nur lesen) │ Group: r-- (nur lesen) User: rw- (lesen + schreiben)

Wer gehört zu welcher Gruppe?

Wenn du eine Datei erstellst, ist:

  • User = du selbst (z. B. admin)
  • Group = deine primäre Gruppe (z. B. admin oder users)
  • Others = alle, die nicht User und nicht in der Group sind

Das gilt, bis jemand mit chown oder chgrp etwas ändert (kommt in Kap. 05).

bash
# Datei anlegen — du bist Owner, deine Gruppe ist Group
touch test.txt
ls -l test.txt
# → -rw-r--r-- 1 admin admin 0 Mai 26 14:30 test.txt
#                ^^^^^ ^^^^^
#                Owner Group
📌
whoami und groups

Mit dem Befehl whoami zeigst du dir an, welcher User du bist. Mit groups siehst du, welchen Gruppen du angehörst — du kannst in mehreren gleichzeitig sein!

bash
whoami        # → admin
groups        # → admin wheel
4.5

Die drei Rechte: r, w, x

Pflicht
BuchstabeSteht fürBei einer DateiBei einem Verzeichnis
rread (lesen)Inhalt der Datei anzeigenInhalt des Verzeichnisses listen (ls)
wwrite (schreiben)Datei ändern oder löschenDateien im Verzeichnis anlegen/löschen/umbenennen
xexecute (ausführen)Datei als Programm/Skript startenIns Verzeichnis hineingehen (cd)
-(kein Recht)

⚠️ Wichtigster Aha-Moment: Die Bedeutung von r, w, x ist bei Verzeichnissen anders als bei Dateien!

⚠️
Verzeichnis-Rechte sind tückisch

Bei Verzeichnissen heißt:

  • r = ich darf die Liste der Dateien sehen (ls), aber nichts öffnen
  • w = ich darf Dateien im Verzeichnis löschen, auch wenn sie mir nicht gehören! (Solange ich w+x am Verzeichnis habe.)
  • x = ich darf reingehen (cd) und Dateien öffnen, wenn ich deren Namen kenne — aber nicht zwingend listen

Klassisches Missverständnis: „Ich habe doch keine Schreibrechte an der Datei — wieso konnte sie jemand löschen?" — Antwort: Wer Schreibrechte am Verzeichnis hat, kann darin Dateien löschen, egal wem sie gehören.

Beispiele zum Lesen

bash
-rw-r--r--   bericht.txt

Datei, Owner darf lesen + schreiben, Group darf nur lesen, Others dürfen nur lesen. Das ist die typische Default-Berechtigung für eine neu erstellte Datei.

bash
drwxr-xr-x   Documents

Verzeichnis, Owner darf alles, Group und Others dürfen rein und listen, aber nichts anlegen oder löschen. Das ist die typische Default-Berechtigung für ein neu erstelltes Verzeichnis.

bash
-rwx------   geheim.sh

Datei (Skript), Owner darf alles, niemand sonst darf irgendwas. Klassisch für ein privates Skript.

bash
-rw-rw-r--   team-notiz.txt

Datei, Owner und Group dürfen lesen + schreiben, Others dürfen nur lesen. Klassisch für Team-Dokumente.

🛡️
Wozu brauchst du Berechtigungen lesen?
  • Sicherheits-Audit: ls -la auf einem Server und sofort sehen, welche Dateien für andere lesbar/schreibbar sind, die es nicht sein sollten.
  • Fehler-Diagnose: „Wieso kann der Webserver die Datei nicht lesen?" → erste Antwort: ls -l und schauen.
  • Übergabe: Ein Kollege fragt „Darf ich da reinschauen?" — du liest schnell ls -l und kannst es ihm sagen.
▶ Mehr Use Cases — Berechtigungen lesen im Alltag
  • Logfile-Zugriff prüfen: Bevor du als normaler User in /var/log/ rumfummelst — kurz ls -l, ob du überhaupt darfst.
  • SSH-Key-Diagnose: SSH lehnt deinen Key ab? ls -l ~/.ssh/id_rsa — wenn da r-- für Others steht, hat SSH zurecht abgelehnt (zu offen).
  • Web-Server-Probleme: „404 obwohl die Datei da ist" — meistens fehlt dem Webserver-User r oder dem Verzeichnis x.
  • Skript funktioniert nicht: „Permission denied" beim Ausführen → ls -l zeigt: x fehlt.
▶ Tiefer einsteigen: Spezial-Rechte (SUID, SGID, Sticky)

Manchmal siehst du in ls -l Buchstaben wie s oder t statt x:

  • s an User-Position (z. B. -rwsr-xr-x) = SUID — Programm läuft mit Rechten des Eigentümers, egal wer es startet. Klassisches Beispiel: passwd (jeder User darf sein Passwort ändern, das Programm aber muss als root auf /etc/shadow zugreifen).
  • s an Group-Position = SGID — bei Verzeichnissen: neue Dateien erben die Gruppe des Verzeichnisses.
  • t an Others-Position (z. B. drwxrwxrwt) = Sticky Bit — nur der Eigentümer einer Datei darf sie löschen, auch wenn das Verzeichnis für alle schreibbar ist. Klassisch: /tmp.

Diese Spezial-Rechte sind fortgeschrittenes Wissen — du wirst sie im Admin-Alltag sehen, aber selten selbst setzen müssen.

🔍 Lese-Übung 2.4 Berechtigungs-Detektiv — ls -l entschlüsseln 15 min

📧 Von: Markus Becker · IT-Leitung
An: Tim Schulz (du)
Betreff: Schnell-Check vor dem Audit — kannst du die Rechte lesen?


Hi Tim,

kurz vor der Mittagspause noch was Schnelles: ich hab gleich eine Vorbesprechung mit den Auditoren und brauch von dir, dass du folgende ls -l-Outputs für mich entschlüsselst. Nur lesen, nichts ändern! Setzen üben wir nachher in Kapitel 05.

Ich brauch von dir zu jeder Zeile drei Antworten:

  1. Was für ein Typ ist das? (Datei, Verzeichnis, Symlink, …)
  2. Was darf der Owner, die Group, Others?
  3. Fällt dir was auf, was sicherheitstechnisch nicht passt?

Schick mir die Antworten gerne als Notiz — bei den auffälligen Sachen besprechen wir nach der Mittagspause, wie wir das fixen.

Danke!
— Markus

Deine Aufgabe

Beantworte für jede der 4 Zeilen unten: (a) Welcher Typ? (b) Was dürfen Owner / Group / Others? (c) Fällt dir sicherheitstechnisch etwas auf?

Hinweis: Auf einem realen System können Dateien verschiedenen Usern und Gruppen gehören — nicht nur dir. In den folgenden Beispielen siehst du meistens deine eigenen Dateien (admin admin), aber auch eine Datei, die einer Kollegin gehört.

text
1)  -rw-r--r--   1 admin  admin   1024  Mai 20 09:15  notizen.txt

2)  drwxr-xr-x   3 admin  admin   4096  Mai 22 14:30  projekte

3)  -rwxrwxrwx   1 admin  admin    256  Mai 25 11:00  install.sh

4)  lrwxrwxrwx   1 admin  admin     11  Mai 26 08:00  log -> /var/log
text
1) -rw-r--r-- notizen.txt
   (a) Typ:    normale Datei (-)
   (b) Owner:  rw-  (lesen + schreiben)
       Group:  r--  (nur lesen)
       Others: r--  (nur lesen)
   (c) Auffällig: Nichts — Standard-Berechtigung für eine Notiz-Datei.

2) drwxr-xr-x projekte
   (a) Typ:    Verzeichnis (d)
   (b) Owner:  rwx  (alles)
       Group:  r-x  (listen + reingehen, nicht ändern)
       Others: r-x  (listen + reingehen, nicht ändern)
   (c) Auffällig: Nichts — Standard für ein Projekt-Verzeichnis.

3) -rwxrwxrwx install.sh
   (a) Typ:    normale Datei (Skript)
   (b) Owner:  rwx
       Group:  rwx
       Others: rwx
   (c) ⚠️ AUFFÄLLIG: 777 — JEDER darf alles!
       Jeder kann das Skript ändern und ausführen.
       SICHERHEITSRISIKO! Sollte z. B. -rwxr-x--- werden.

4) lrwxrwxrwx log -> /var/log
   (a) Typ:    Symlink (l)
   (b) Rechte: lrwxrwxrwx ist NORMAL für Symlinks —
       die echten Rechte stehen am Ziel /var/log.
   (c) Nichts Ungewöhnliches.
💡
Berechtigungs-Cheat

Wer beim Lesen unsicher ist: schreib die 10 Zeichen einfach untereinander auf und labele sie. Mit der Zeit wirst du sie auf einen Blick lesen — am Anfang ist „Position für Position abklopfen" der sicherste Weg.

4.7

Typische Anfänger-Fehler beim Lesen

Vorsicht
Fehler 1 — „Owner sind alle Admins"

Nein, Owner ist genau ein User pro Datei. Wer mehrere Admins braucht, packt sie in eine Gruppe (z. B. wheel oder admin).

Fehler 2 — Verzeichnis-x vergessen

Wer einem User r auf ein Verzeichnis gibt, aber kein x, der hat ein Verzeichnis erzeugt, das man listen kann (ls), aber nicht betreten (cd). Klassischer Frustfehler.

Fehler 3 — „Symlink-Rechte zählen"

Symlinks haben immer lrwxrwxrwx — das heißt nicht, dass alle alles dürfen! Die echten Rechte stehen an der Ziel-Datei, der Symlink zeigt nur hin.

Fehler 4 — „Es sind doch nur Buchstaben"

-rw-rw-rw- sieht harmlos aus, ist aber gefährlich: jeder auf dem System kann die Datei ändern. Auf Servern mit vielen Usern ein No-Go.

🎯

Kontrollfragen zum Kapitel

Selbst-Check
  1. Wie viele Zeichen umfasst der Berechtigungs-Block in ls -l, und wie sind sie aufgeteilt?
  2. Was bedeutet das erste Zeichen — und nenne drei mögliche Werte.
  3. Wer ist mit User, wer mit Group, wer mit Others gemeint?
  4. Was bedeutet r, w, x bei einer Datei?
  5. Was bedeuten dieselben Buchstaben bei einem Verzeichnis?
  6. Lies diese Zeile: drwxr-x--- — was darf wer?
  7. Wieso haben Symlinks immer lrwxrwxrwx, und sind sie deswegen unsicher?
  8. Du siehst -rwxrwxrwx an einer Datei — warum solltest du nervös werden?
  1. 10 Zeichen. Aufteilung: Zeichen 1 = Typ, 2–4 = User, 5–7 = Group, 8–10 = Others.
  2. Der Typ der Datei. Mögliche Werte u. a.: - (Datei), d (Verzeichnis), l (Symlink), seltener c, b, p, s.
  3. User = Eigentümer der Datei. Group = Mitglieder der zugewiesenen Gruppe. Others = alle übrigen User auf dem System.
  4. Datei: r = Inhalt lesen, w = Datei ändern/löschen, x = als Programm ausführen.
  5. Verzeichnis: r = Inhalt auflisten, w = Dateien darin anlegen/löschen, x = ins Verzeichnis hineingehen / auf Dateien zugreifen.
  6. Verzeichnis (d). Owner darf alles (rwx). Group darf reingehen und listen, aber nichts ändern (r-x). Others dürfen gar nichts (---).
  7. Symlinks haben immer lrwxrwxrwx, weil die echten Rechte am Ziel der Verlinkung zählen. Der Symlink selbst hat keine eigenen Rechte. Nicht unsicher — das System ignoriert die Symlink-Rechte komplett.
  8. Weil -rwxrwxrwx (in der nächsten Stunde lernst du: das ist 777) bedeutet: jeder darf alles mit dieser Datei. Lesen, ändern, ausführen. Auf Multi-User-Systemen ein klassisches Sicherheitsrisiko — meistens unbeabsichtigt entstanden durch ein faules chmod 777.