Inhalt dieses Kapitels
Wer darf was? Warum es Berechtigungen gibt
EinstiegLinux 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.
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.
ls -l zerlegen — die 10 Zeichen im Überblick
Pflicht
$ ls -l bericht.txt
-rw-r--r-- 1 admin team 245 Mai 26 14:22 bericht.txt
Die ersten 10 Zeichen ganz links sind das, worum es heute geht — der Rest ist Metadaten (Owner-Name, Gruppe, Größe, Datum, Name).
Die 10 Zeichen liest man in vier Blöcken:
| Block | Position | Bedeutung |
|---|---|---|
| 1 | Zeichen 1 | Datei-Typ |
| 2 | Zeichen 2–4 | Rechte für User (Eigentümer) |
| 3 | Zeichen 5–7 | Rechte für Group |
| 4 | Zeichen 8–10 | Rechte für Others (alle anderen) |
Diese Reihenfolge ist immer gleich. Wenn du sie einmal
verinnerlicht hast, liest du jede ls -l-Zeile in
Sekunden.
Position 1: Der Datei-Typ
Pflicht| Zeichen | Bedeutung | Beispiel |
|---|---|---|
- | normale Datei | -rw-r--r-- (bericht.txt) |
d | Verzeichnis (directory) | drwxr-xr-x (Documents) |
l | Symbolischer Link (link) | lrwxrwxrwx (aktuelles-log) |
c | character device (z. B. /dev/null, Tastatur) | crw-rw-rw- |
b | block device (z. B. Festplatte /dev/sda) | brw-rw---- |
p | named pipe (FIFO) | prw-r--r-- |
s | socket (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:
# Verschiedene Typen sehen — Listing von /dev/
ls -l /dev/ | head -10
Positionen 2–10: User, Group, Others
Pflicht| Block | Kürzel | Wer ist gemeint? |
|---|---|---|
| Positionen 2–4 | u (User) | Der Eigentümer der Datei — meistens der, der sie erstellt hat |
| Positionen 5–7 | g (Group) | Alle Mitglieder der Gruppe, die der Datei zugewiesen ist |
| Positionen 8–10 | o (Others) | Alle anderen User auf dem System |
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.
adminoderusers) - 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).
# 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 groupsMit 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!
whoami # → admin
groups # → admin wheel
Die drei Rechte: r, w, x
Pflicht| Buchstabe | Steht für | Bei einer Datei | Bei einem Verzeichnis |
|---|---|---|---|
r | read (lesen) | Inhalt der Datei anzeigen | Inhalt des Verzeichnisses listen (ls) |
w | write (schreiben) | Datei ändern oder löschen | Dateien im Verzeichnis anlegen/löschen/umbenennen |
x | execute (ausführen) | Datei als Programm/Skript starten | Ins Verzeichnis hineingehen (cd) |
- | (kein Recht) | – | – |
⚠️ Wichtigster Aha-Moment: Die Bedeutung von r,
w, x ist bei Verzeichnissen
anders als bei Dateien!
Bei Verzeichnissen heißt:
r= ich darf die Liste der Dateien sehen (ls), aber nichts öffnenw= ich darf Dateien im Verzeichnis löschen, auch wenn sie mir nicht gehören! (Solange ichw+xam 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
-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.
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.
-rwx------ geheim.sh
Datei (Skript), Owner darf alles, niemand sonst darf irgendwas. Klassisch für ein privates Skript.
-rw-rw-r-- team-notiz.txt
Datei, Owner und Group dürfen lesen + schreiben, Others dürfen nur lesen. Klassisch für Team-Dokumente.
- Sicherheits-Audit:
ls -laauf 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 -lund schauen. - Übergabe: Ein Kollege fragt „Darf ich da
reinschauen?" — du liest schnell
ls -lund kannst es ihm sagen.
▶ Mehr Use Cases — Berechtigungen lesen im Alltag
- Logfile-Zugriff prüfen: Bevor du als normaler
User in
/var/log/rumfummelst — kurzls -l, ob du überhaupt darfst. - SSH-Key-Diagnose: SSH lehnt deinen Key ab?
ls -l ~/.ssh/id_rsa— wenn dar--für Others steht, hat SSH zurecht abgelehnt (zu offen). - Web-Server-Probleme: „404 obwohl die Datei da
ist" — meistens fehlt dem Webserver-User
roder dem Verzeichnisx. - Skript funktioniert nicht: „Permission denied"
beim Ausführen →
ls -lzeigt:xfehlt.
▶ Tiefer einsteigen: Spezial-Rechte (SUID, SGID, Sticky)
Manchmal siehst du in ls -l Buchstaben wie
s oder t statt x:
san 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/shadowzugreifen).san Group-Position = SGID — bei Verzeichnissen: neue Dateien erben die Gruppe des Verzeichnisses.tan 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.
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:
- Was für ein Typ ist das? (Datei, Verzeichnis, Symlink, …)
- Was darf der Owner, die Group, Others?
- 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
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.
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
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.
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.
Typische Anfänger-Fehler beim Lesen
VorsichtNein, Owner ist genau ein User
pro Datei. Wer mehrere Admins braucht, packt sie in eine
Gruppe (z. B. wheel oder
admin).
x vergessenWer 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.
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.
-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- Wie viele Zeichen umfasst der Berechtigungs-Block in
ls -l, und wie sind sie aufgeteilt? - Was bedeutet das erste Zeichen — und nenne drei mögliche Werte.
- Wer ist mit User, wer mit Group, wer mit Others gemeint?
- Was bedeutet
r,w,xbei einer Datei? - Was bedeuten dieselben Buchstaben bei einem Verzeichnis?
- Lies diese Zeile:
drwxr-x---— was darf wer? - Wieso haben Symlinks immer
lrwxrwxrwx, und sind sie deswegen unsicher? - Du siehst
-rwxrwxrwxan einer Datei — warum solltest du nervös werden?
- 10 Zeichen. Aufteilung: Zeichen 1 = Typ, 2–4 = User, 5–7 = Group, 8–10 = Others.
- Der Typ der Datei. Mögliche Werte u. a.:
-(Datei),d(Verzeichnis),l(Symlink), seltenerc,b,p,s. - User = Eigentümer der Datei. Group = Mitglieder der zugewiesenen Gruppe. Others = alle übrigen User auf dem System.
- Datei:
r= Inhalt lesen,w= Datei ändern/löschen,x= als Programm ausführen. - Verzeichnis:
r= Inhalt auflisten,w= Dateien darin anlegen/löschen,x= ins Verzeichnis hineingehen / auf Dateien zugreifen. - Verzeichnis (
d). Owner darf alles (rwx). Group darf reingehen und listen, aber nichts ändern (r-x). Others dürfen gar nichts (---). - 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. - Weil
-rwxrwxrwx(in der nächsten Stunde lernst du: das ist777) bedeutet: jeder darf alles mit dieser Datei. Lesen, ändern, ausführen. Auf Multi-User-Systemen ein klassisches Sicherheitsrisiko — meistens unbeabsichtigt entstanden durch ein fauleschmod 777.