AB 13 — Benutzerverwaltung allgemein
Wann und wieso man mehrere Benutzer in einem Betriebssystem erstellen sollte.
Man erstellt mehrere Benutzer, wenn mehrere Personen oder verschiedene Dienste/Programme dasselbe System nutzen sollen.
Gründe:
Sicherheit: Jeder Benutzer hat eigene Rechte → weniger Risiko, etwas Wichtiges zu löschen oder zu verändern.
Privatsphäre: Jeder Benutzer besitzt eigene Dateien und Einstellungen.
Rollen & Aufgaben trennen: Z. B. Entwickler, Administrator, Service-Accounts.
Nachvollziehbarkeit: Aktionen lassen sich einem bestimmten Benutzer zuordnen (Auditing).
Stabilität: Ein Fehler eines Benutzers beeinflusst die anderen Nutzer weniger.
Das Heimatverzeichnis
Das Heimatverzeichnis (Home Directory) ist der persönliche Arbeitsbereich eines Benutzers.
Die Heimatverzeichnisse normaler Benutzer befinden sich standardmäßig in:
| /home/ |
|---|
Beispiele:
/home/maria
/home/tom
/home/student1
Es enthält:
persönliche Dateien (Dokumente, Downloads, Projekte)
Benutzerkonfigurationen (z. B. .bashrc, .config)
Programmeinstellungen
Jeder Benutzer hat normalerweise sein eigenes Heimatverzeichnis, in dem er uneingeschränkt arbeiten kann und andere Benutzer haben keinen Zugriff auf das Heimverzeichnis.
Gründe:
Datenschutz des Benutzers
Schutz vertraulicher Dateien
Schutz vor unabsichtlichen Änderungen durch andere Benutzer
Erhöhung der System-Sicherheit
Benutzerkonten
Die Datei /etc/passwd ist eine der ältesten und wichtigsten Systemdateien in Unix- und Linux Systemen. Sie enthält Informationen über alle Benutzerkonten, die auf dem System existieren – sowohl menschliche Benutzer als auch System- und Dienstkonten.
Der Name stammt aus der frühen Unix-Geschichte, als diese Datei noch tatsächlich Passwörter im Klartext enthielt. Heute ist das nicht mehr der Fall.
Aufgaben und Bedeutung von /etc/passwd
Die Datei dient dazu:
Benutzer auf dem System zu identifizieren
Benutzer-IDs (UID) und Gruppen-IDs (GID) bereitzustellen
das Heimatverzeichnis eines Benutzers festzulegen
die Login-Shell festzulegen
Systemdiensten ein eigenes Konto zu geben
grundlegende Anmeldeinformationen für das System bereitzustellen
Ohne /etc/passwd wäre das Einloggen und Starten eines Benutzerkontos nicht möglich.
Aufbau der Datei /etc/passwd
Jeder Benutzer wird in einer Textzeile beschrieben. Die Felder sind durch Doppelpunkte (:) getrennt.
Beispiel-Eintrag
| michel:x:1000:1000:Michel Dupont:/home/michel:/bin/bash |
|---|
Bedeutung der Felder
| Feld | Beispiel | Bedeutung |
|---|---|---|
| 1. Benutzername | michel | Name des Benutzerkontos |
| 2. Passwortplatzhalter | x | Hinweis, dass Passwort in /etc/shadow gespeichert ist |
| 3. UID (User ID) | 1000 | Eindeutige Benutzer-ID |
| 4. GID (Group ID) | 1000 | Primäre Gruppen-ID |
| 5. GECOS-Feld (Kommentar) | Michel Dupont | Klarname / Beschreibung |
| 6. Heimatverzeichnis | /home/michel | Persönlicher Ordner des Benutzers |
| 7. Login-Shell | /bin/bash | Shell, die nach dem Login gestartet wird |
Die UID ist ein numerischer Wert, der den Benutzer identifiziert. Wichtige Bereiche:
| UID-Bereich | Bedeutung |
|---|---|
| 0 | root (Superuser) |
| 1–99 | statische Systemkonten |
| 100–999 | dynamische System-/Dienstkonten |
| ab 1000 | normale Benutzerkonten |
Beispiel:
UID 0 → Root
UID 33 → www-data (Webserver-Dienst)
UID 1000 → erster regulärer Benutzer
Die GID (Group ID)
Die GID verweist auf die primäre Gruppe des Benutzers. Diese Gruppen werden in der Datei /etc/group verwaltet. Oft haben Benutzer eine eigene primäre Gruppe, z. B.:
Eine Gruppe ist eine Sammlung von Benutzern, denen gemeinsame Rechte und Berechtigungen zugewiesen werden können.
Statt jedem Benutzer einzeln Rechte zu geben, ordnet man Benutzer einer Gruppe zu. Beispiel:
Alle Benutzer der Gruppe students können z.B: auf /home/shared zugreifen
Die Gruppe developers darf Programme kompilieren
Die Gruppe www-data wird vom Webserver genutzt
Gruppen vereinfachen die Verwaltung und steigern die Sicherheit.
Das Passwortfeld: Früher und heute
Früher standen Passwörter tatsächlich hier, z. B.:
| michel:abcdef12345:1000:1000:Michel Dupont:/home/michel:/bin/bash |
|---|
Das war unsicher.
Heute finden wir stattdessen:
| michel:x:1000:1000:Michel Dupont:/home/michel:/bin/bash |
|---|
Das bedeutet:
Passwort ist in /etc/shadow gespeichert
nur root kann diese Datei lesen
Passwörter sind verschlüsselt (gehasht)
Die Login-Shell
Typische Login-Shells:
| Shell | Pfad |
|---|---|
| Bash | /bin/bash |
| Zsh | /bin/zsh |
| Sh | /bin/sh |
| Keine Shell (Login gesperrt) | /usr/sbin/nologin oder /bin/false |
Beispiel für typische Einträge in /etc/passwd
| root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin student:x:1000:1000:Student User:/home/student:/bin/bash guest:x:2000:2000:Guest User:/home/guest:/bin/bash |
|---|
Sicherheit und Best Practices
/etc/passwd muss für alle lesbar sein (für Programme notwendig)
darf nur von root geschrieben werden
Passwörter niemals direkt speichern → nur /etc/shadow verwenden
Dienste sollten immer eigene, eingeschränkte Konten haben (nginx, mysql, etc.)
Shell von Diensten immer auf /usr/sbin/nologin setzen
Multiple-Choice (eine richtige Antwort) mit den Schülern
- Wozu dient die Datei /etc/passwd?
| Sie speichert verschlüsselte Passwörter | |
|---|---|
| Sie enthält grundlegende Informationen zu allen Benutzern | |
| Sie speichert die Systemlogs | |
| Sie enthält die Liste aller installierten Pakete |
- Wie viele Felder hat ein Eintrag in /etc/passwd?
| 5 | |
|---|---|
| 6 | |
| 7 | |
| 8 |
- Welches Zeichen trennt die Felder eines Eintrags in /etc/passwd?
| Semikolon ; | |
|---|---|
| Doppelpunkt : | |
| Komma , | |
| Tabulator |
- Welches Feld enthält nicht die tatsächlichen Passwörter?
| UID | |
|---|---|
| Username | |
| Passwortfeld | |
| Shell |
- Wo befindet sich üblicherweise das Heimatverzeichnis eines normalen Benutzers?
| /root | |
|---|---|
/home/<username> | |
| /etc/home | |
| /usr/users/ |
- Die Datei /etc/passwd muss für alle Benutzer lesbar sein.
| Wahr | |
|---|---|
| Falsch |
- Man darf Passwörter direkt in /etc/passwd eintragen.
| Wahr | |
|---|---|
| Falsch |
- Eine falsch bearbeitete /etc/passwd kann das System unbenutzbar machen.
| Wahr | |
|---|---|
| Falsch |