Wie ein kleiner Fehler die Kontrolle verschenkt
Das Prinzip der geringsten Rechte heißt: Jedes Konto und jedes Programm bekommt nur die Rechte, die es für seine Arbeit braucht. Ein kleiner Fehler bei den Rechten kann sonst ein ganzes System verschenken.
Du lernst, Rechte zu lesen und zu prüfen. Die Regel: Du prüfst nur Rechte in deiner eigenen Lab-Kopie, nie an fremden Systemen und nie ohne Erlaubnis.
Am Ende dieser Lektion
Notiz
Ich kann erklären, wie ein kleiner Rechtefehler die Kontrolle über ein System verschenkt.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Recht | die Erlaubnis, eine Datei zu lesen, zu ändern oder zu starten | |
| Root | das Konto mit allen Rechten auf einem Linux-System | |
| Besitzer | das Konto, dem eine Datei gehört | |
| Schreibrecht | die Erlaubnis, eine Datei zu ändern | w |
| Prüfung | die Kontrolle, ob die Rechte zur Aufgabe passen | |
| Rechteausweitung | ein Konto bekommt mehr Rechte, als vorgesehen war |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Wie liest man die Rechte einer Datei?
Unter Linux zeigt eine Zeile wie -rwxr-xr-x die Rechte. Das erste Zeichen sagt die Art: - ist eine Datei, d ein Ordner. Danach folgen drei Gruppen zu je drei Zeichen.
Die Gruppen gelten für den Besitzer, für die Gruppe und für alle anderen. In jeder steht r für lesen, w für ändern und x für ausführen.
Beispiel: -rwxr-x--- Zeichen für Zeichen
| Stelle | Zeichen | Bedeutung |
|---|---|---|
| 1 | - | eine normale Datei |
| 2 bis 4 | rwx | der Besitzer darf lesen, ändern und ausführen |
| 5 bis 7 | r-x | die Gruppe darf lesen und ausführen |
| 8 bis 10 | --- | alle anderen dürfen nichts |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Die eine Regel
Warnung
Drück oben auf Lab starten und warte, bis die Maschine läuft. Du liest nur die Rechte bekannter Systemdateien in deiner eigenen Kopie. Das Lab hat noch eigene Schwachstellen. Die suchst du später selbst. Hier zeigen wir sie nicht.
Rechte von drei Systemdateien lesen
stat -c '%A %U %n' /etc/passwd /etc/shadow /usr/bin/passwdHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Die Rechte des Ordners /tmp lesen
stat -c '%A %U %n' /tmpHier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.
Was die Ausgabe sagt
| Datei | Rechte | Warum so |
|---|---|---|
| /etc/passwd | -rw-r--r-- | Alle dürfen die Kontenliste lesen, nur Root ändert sie |
| /etc/shadow | -rw-r----- | Die Hashes der Passwörter sehen nur Root und eine Gruppe |
| /usr/bin/passwd | -rwsr-xr-x | Das s lässt es mit den Rechten des Besitzers Root laufen |
| /tmp | drwxrwxrwt | Alle dürfen schreiben, das t schützt fremde Dateien |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Warum ist ein Schreibrecht für alle gefährlich?
Stell dir ein Skript vor, das jede Nacht automatisch als Root läuft. Darf jedes Konto die Datei ändern, kann eine Schülerin oder ein Gast dort eigene Befehle eintragen. In der Nacht führt Root sie aus.
So wird aus einem kleinen Konto ein mächtiges. Das nennt man Rechteausweitung. Der Fehler war nur ein einziges w zu viel.
Ein häufiger Fehler
Warnung
Viele denken, ein Konto ohne Rechte sei harmlos. Das stimmt nur, wenn die Rechte der Dateien und Programme drumherum stimmen. Ein schwaches Konto wird gefährlich, sobald ein Programm oder Skript mit mehr Rechten ihm etwas überlässt.
Worauf eine Rechteprüfung achtet
| Auffälligkeit | Warum sie auffällt | Besser |
|---|---|---|
| Eine Datei, die alle ändern dürfen | Jedes Konto kann sie umbauen | Nur der Besitzer darf schreiben |
| Ein Programm mit s, das nicht erwartet wird | Es läuft mit fremden Rechten | Das s nur dort lassen, wo es nötig ist |
| Ein Konto mit Root-Rechten für alles | Ein Fehler trifft das ganze System | Nur den einen Befehl erlauben, den man braucht |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.