Das Praktikum und die Lohnliste
An Ihrem ersten Tag bekommt eine neue Kollegin im Praktikum Zugang zum gemeinsamen Laufwerk. Dort liegt auch die Lohnliste.
Niemand hat etwas Böses vor. Doch ein falscher Klick, und eine Datei ist gelöscht oder verschickt.
Wer weniger darf, kann weniger kaputt machen. Diese Lektion zeigt, wie man das plant.
Am Ende dieser Lektion
Notiz
Ich kann jeder Person nur den Zugriff geben, den sie braucht.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Zugriffsrecht | Die Erlaubnis, etwas zu lesen, zu ändern oder auszuführen | |
| Geringste Rechte | Jede Person bekommt nur, was sie für ihre Arbeit braucht (englisch: least privilege) | |
| Rolle | Eine Gruppe von Rechten, die zu einer Aufgabe passt | Support |
| Eigentümer | Die Person, der eine Datei gehört | |
| Konto | Der Zugang einer Person zu einem System |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Das Prinzip der geringsten Rechte
Geben Sie jeder Person genau so viel Zugriff, wie die Arbeit verlangt. Nicht mehr.
Die Person im Support liest Tickets. Sie braucht keine Lohnliste. Die Buchhaltung bucht Rechnungen. Sie braucht keine Serverkonfiguration.
Wird ein Konto gestohlen oder ein Fehler gemacht, bleibt der Schaden klein.
Rollen statt Einzelrechte
Es wäre mühsam, jeder Person einzeln Rechte zu geben. Deshalb fasst man Rechte zu Rollen zusammen.
Eine neue Person bekommt die Rolle „Support“ und damit alles, was Support braucht. Wechselt sie die Abteilung, tauscht man die Rolle.
Ein weiterer Vorteil: Man kann prüfen, wer welche Rolle hat.
Probieren Sie es aus: Personen, Rollen und Aktionen
rechte = {
"support": ["tickets_lesen", "tickets_antworten"],
"buchhaltung": ["rechnungen_lesen", "rechnungen_buchen"],
"admin": ["tickets_lesen", "rechnungen_lesen", "konten_anlegen"],
}
personen = {"Mara": "support", "Jonas": "buchhaltung", "Selin": "admin"}
def darf(person, aktion):
rolle = personen[person]
return aktion in rechte[rolle]
print("Mara liest Rechnungen:", darf("Mara", "rechnungen_lesen"))
print("Jonas bucht Rechnungen:", darf("Jonas", "rechnungen_buchen"))
print("Selin legt Konten an:", darf("Selin", "konten_anlegen"))
# Wechselt Mara in die Buchhaltung, ändert sich nur eine Zeile: personen["Mara"].
Rechte an Dateien
Auch auf einem Linux-Server gibt es Rechte. Jede Datei hat einen Eigentümer, eine Gruppe und „alle anderen“.
Für jede dieser drei Gruppen gibt es drei Rechte: lesen (r), schreiben (w) und ausführen (x).
Der Befehl ls -l zeigt sie. Der Befehl chmod ändert sie.
Als Zahl zählt r als 4, w als 2 und x als 1. So steht 6 für lesen und schreiben, 4 für nur lesen und 0 für nichts. Drei Ziffern gelten der Reihe nach für Eigentümer, Gruppe und alle anderen: 640 ist -rw-r-----.
Ein Beispiel: ls -l lesen
| Was ls -l zeigt | Eigentümer | Gruppe | Alle anderen |
|---|---|---|---|
| -rw-r--r-- | lesen und schreiben | lesen | lesen |
| -rw------- | lesen und schreiben | nichts | nichts |
| -rwxr-x--- | lesen, schreiben, ausführen | lesen, ausführen | nichts |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Probieren Sie es aus: eine Lohnliste schützen
# Eine Lohnliste anlegen und ansehen
echo "Name;Gehalt" > lohnliste.txt
chmod 644 lohnliste.txt
ls -l lohnliste.txt
# Jetzt darf nur noch die Person lesen und schreiben, der die Datei gehört
chmod 600 lohnliste.txt
ls -l lohnliste.txt
# Setzen Sie die Rechte auf 640 und sehen Sie, was sich ändert.
Ein häufiger Fehler
Warnung
Wenn etwas nicht funktioniert, geben viele allen alle Rechte, zum Beispiel mit chmod 777. Das löst das Problem für heute und öffnet die Tür für alle. Suchen Sie lieber das eine Recht, das fehlt, und geben Sie nur dieses.
Im Berufsalltag
Tipp
Neue Teammitglieder bekommen oft nur wenig Zugriff und mehr, wenn die Aufgabe es verlangt. Fragen Sie nach, wenn Ihnen etwas fehlt, und sagen Sie es, wenn Sie mehr haben, als Sie brauchen. Beides gilt als professionell.