--- id: S7 titel: Linux – Benutzer, Gruppen und Dateirechte block: system woche: 13 worum: Unter Linux hat jede Datei einen Besitzer, eine Gruppe und drei Mal drei Rechte. Das ist einfacher als unter Windows – und genauso schnell falsch gesetzt. rahmenplan: [B3, A6] lernfeld: LF9 merksatz: Lesen 4, Schreiben 2, Ausführen 1 – für Besitzer, Gruppe, alle anderen. Täglich arbeiten als Benutzer, Rechte holen mit sudo. karten: - frage: Was bedeutet chmod 640 bericht.txt? antwort: Der Besitzer darf lesen und schreiben (6 = 4 + 2), die Gruppe darf lesen (4), alle anderen dürfen nichts (0). - frage: Was bedeutet das Recht x bei einem Verzeichnis? antwort: Man darf in das Verzeichnis wechseln und auf die Dateien darin zugreifen. Ohne x nützt auch das Leserecht r wenig – man sieht die Namen, kommt aber nicht an die Dateien. - frage: Wie nimmt man einen Benutzer nachträglich in eine Gruppe auf, ohne ihn aus den anderen zu entfernen? antwort: Mit sudo usermod -aG gruppe benutzer. Das a für append ist entscheidend – ohne es ersetzt -G alle bisherigen Zusatzgruppen. --- ## Das Wesentliche - **Jede Datei** hat einen Besitzer, eine Gruppe und Rechte für drei Klassen: Besitzer (u), Gruppe (g), alle anderen (o). - **Drei Rechte:** r lesen (4), w schreiben (2), x ausführen (1). Bei Verzeichnissen heißt x: hineinwechseln dürfen. - **Lesen in `ls -l`:** `-rw-r----- 1 anna buchhaltung bericht.txt` – Datei, Besitzerin anna liest und schreibt, Gruppe buchhaltung liest, alle anderen nichts. - **Setzen:** `chmod 640 datei` als Zahl oder `chmod g+w datei` als Zeichen. `chown anna:buchhaltung datei` ändert Besitzer und Gruppe. - **777 ist nie die Lösung.** Wer „Permission denied" mit `chmod 777` beseitigt, hat das Problem versteckt und eine Lücke geöffnet. Richtig ist, Besitzer oder Gruppe passend zu setzen. - **Benutzer:** `sudo adduser anna` legt Benutzer samt Heimatverzeichnis an (Debian, Ubuntu). Gespeichert wird in `/etc/passwd`, die Passwort-Hashes in `/etc/shadow`, Gruppen in `/etc/group`. - **Gruppen:** `sudo usermod -aG gruppe anna`. Wirksam erst nach erneuter Anmeldung. - **root und sudo:** root darf alles. Im Alltag arbeitet man als normaler Benutzer und holt sich Rechte für einen einzelnen Befehl mit `sudo`. Jeder `sudo`-Aufruf wird protokolliert. - **Konto sperren statt löschen**, wenn jemand geht: `sudo usermod -L anna` und `sudo chage -E 0 anna`. So bleibt nachvollziehbar, wem welche Dateien gehörten. ## Übersicht | Zahl | Zeichen | Bedeutung | Typisch für | |---|---|---|---| | 644 | rw-r--r-- | Besitzer schreibt, alle lesen | Konfigurationsdateien, Webseiten | | 640 | rw-r----- | Besitzer schreibt, Gruppe liest | Dateien mit vertraulichem Inhalt | | 600 | rw------- | nur der Besitzer | private Schlüssel, Zugangsdaten | | 755 | rwxr-xr-x | Besitzer schreibt, alle lesen und führen aus | Programme, Verzeichnisse | | 750 | rwxr-x--- | wie 755, aber ohne die anderen | Verzeichnisse einer Abteilung | ## Prüfungsfrage **Frage:** Im Verzeichnis `/srv/einkauf` sollen alle Mitglieder der Gruppe `einkauf` Dateien anlegen und ändern dürfen, andere Benutzer gar nichts. Wie richten Sie das ein? **Antwort:** `sudo chown root:einkauf /srv/einkauf` setzt die Gruppe; `sudo chmod 2770 /srv/einkauf` gibt Besitzer und Gruppe Lesen, Schreiben und Hineinwechseln und den anderen nichts. Die vorangestellte 2 setzt das setgid-Bit: Neue Dateien im Verzeichnis gehören dann automatisch der Gruppe `einkauf` statt der primären Gruppe ihres Erstellers – sonst könnten die Kollegen eine neu angelegte Datei womöglich nicht ändern. Die Benutzer kommen mit `sudo usermod -aG einkauf benutzer` in die Gruppe und müssen sich danach neu anmelden.