Zum Inhalt springen

AB 13 — Benutzerverwaltung allgemein

Mein Fortschritt0/1 (0 %)

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

FeldBeispielBedeutung
1. BenutzernamemichelName des Benutzerkontos
2. PasswortplatzhalterxHinweis, dass Passwort in /etc/shadow gespeichert ist
3. UID (User ID)1000Eindeutige Benutzer-ID
4. GID (Group ID)1000Primäre Gruppen-ID
5. GECOS-Feld (Kommentar)Michel DupontKlarname / Beschreibung
6. Heimatverzeichnis/home/michelPersönlicher Ordner des Benutzers
7. Login-Shell/bin/bashShell, die nach dem Login gestartet wird

Die UID ist ein numerischer Wert, der den Benutzer identifiziert. Wichtige Bereiche:

UID-BereichBedeutung
0root (Superuser)
1–99statische Systemkonten
100–999dynamische System-/Dienstkonten
ab 1000normale 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:

ShellPfad
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

  1. 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
  1. Wie viele Felder hat ein Eintrag in /etc/passwd?
5
6
7
8
  1. Welches Zeichen trennt die Felder eines Eintrags in /etc/passwd?
Semikolon ;
Doppelpunkt :
Komma ,
Tabulator
  1. Welches Feld enthält nicht die tatsächlichen Passwörter?
UID
Username
Passwortfeld
Shell
  1. Wo befindet sich üblicherweise das Heimatverzeichnis eines normalen Benutzers?
/root
/home/<username>
/etc/home
/usr/users/
  1. Die Datei /etc/passwd muss für alle Benutzer lesbar sein.
Wahr
Falsch
  1. Man darf Passwörter direkt in /etc/passwd eintragen.
Wahr
Falsch
  1. Eine falsch bearbeitete /etc/passwd kann das System unbenutzbar machen.
Wahr
Falsch