linux-cli-shell cli user-management administration security fundamentals

User Management: useradd, usermod & userdel (Artikel 285)

Professionelle Benutzerverwaltung unter Linux. Erfahren Sie den Umgang mit den Core-Utilities zur Erstellung, Modifikation und Löschung von Benutzerkonten und Service-Accounts.

# User Management Mastery: Konten sicher verwalten

TL;DR / Management Summary Wer Linux-Systeme professionell verwaltet, muss den Unterschied zwischen interaktiven Benutzern und Service-Accounts kennen. Ein Senior Admin nutzt die Low-Level Tools useradd, usermod und userdel, um exakt zu steuern, welche Rechte ein User hat, wo sein Home-Verzeichnis liegt und ob er sich überhaupt einloggen darf. In diesem Modul lernen wir das Fundament des Identitäts-Managements auf jedem Linux-Server.


# 1. Einführung & Architektur

Die Identitäts-Dateien.

Benutzerdaten sind in Linux in drei Hauptdateien gespeichert:

  1. /etc/passwd: Basis-Informationen (Username, UID, GID, Shell, Home).
  2. /etc/shadow: Verschlüsselte Passwörter und Ablaufdaten (Sicherheitskritisch!).
  3. /etc/group: Gruppen-Zugehörigkeiten.
graph LR
    A[Admin Command] --> B[useradd / usermod]
    B --> C[/etc/passwd]
    B --> D[/etc/shadow]
    B --> E[/etc/group]
    F[Login Process] -->|Read| C
    F -->|Verify| D

# 2. useradd: Benutzer anlegen

Präzision beim Erstellen.

# Beispiel: Ein Standard-Admin-User

# -m: Home-Dir erstellen, -G: Zusatzgruppen, -s: Shell
sudo useradd -m -G wheel,docker -s /bin/bash sysadmin

# Beispiel: Ein Service-Account (Sicher)

Für Dämons (z.B. eine Datenbank) erstellen wir Accounts ohne Login und Home-Dir.

# -r: System-Account (niedrige UID), -s: No-Login
sudo useradd -r -s /usr/sbin/nologin myappuser

# 3. usermod: Bestehende Konten ändern

Anpassung im laufenden Betrieb.

# Gruppen hinzufügen (Der häufigste Befehl)

Vorsicht: Nutzen Sie immer -aG (append). Wenn Sie das -a vergessen, werden alle anderen Gruppen des Users gelöscht!

sudo usermod -aG sudo johndoe

# Account sperren/entsperren

# Sperren (Lock)
sudo usermod -L johndoe
# Entsperren (Unlock)
sudo usermod -U johndoe

# 4. Day-2 Operations: Benutzer löschen

Sauberes Offboarding.

# userdel

# -r: Löscht auch das Home-Verzeichnis und Mail-Spool
sudo userdel -r olduser

# 5. Troubleshooting & “War Stories”

Wenn die ID nicht passt.

# Story 1: “Der Ghost-User im NFS”

Symptom: Ein User greift auf einen NFS-Share zu und sieht Dateien, die angeblich ihm gehören, aber er kann sie nicht öffnen. Ursache: Die UID auf Server A (z.B. 1001) passt nicht zur UID auf Server B (1005) für den gleichen Usernamen. Lösung: Synchronisieren Sie die UIDs manuell: sudo usermod -u 1001 <username>. Achtung: Danach müssen Sie alle Dateien des Users mit find / -uid 1005 -exec chown 1001 {} \; anpassen.

# Story 2: “Das Login-Loop-Problem”

Symptom: Ein User gibt sein korrektes Passwort ein, wird aber sofort wieder zum Login-Schirm zurückgeworfen. Ursache: Die in /etc/passwd definierte Shell (z.B. /usr/bin/zsh) wurde gelöscht oder der Pfad ist falsch. Lösung: Prüfen Sie die Shell: grep <user> /etc/passwd. Setzen Sie sie auf einen validen Pfad zurück: sudo usermod -s /bin/bash <user>.


# 6. Fazit & Empfehlung

  • Wahl: Nutzen Sie useradd statt des interaktiven adduser (Debian-Spezifisch) in Skripten, da es konsistenter über alle Distributionen hinweg arbeitet.
  • Security: Vergeben Sie für Service-Accounts immer /usr/sbin/nologin (oder /bin/false), um die Angriffsfläche zu minimieren.
  • Wartung: Nutzen Sie das Tool id <username>, um schnell alle Gruppen und IDs eines Benutzers zu prüfen.

# Anhang: Cheatsheet

Aufgabe Befehl
User erstellen useradd <name>
Mit Home-Dir useradd -m <name>
UID manuell setzen useradd -u 5000 <name>
Shell ändern usermod -s /bin/zsh <name>
Gruppe hinzufügen usermod -aG <group> <name>
Primäre Gruppe ändern usermod -g <group> <name>
User löschen (komplett) userdel -r <name>
Account Ablaufdatum usermod -e 2024-12-31 <name>
UID/GID Info id <name>
Alle User listen cat /etc/passwd
Verwaiste Dateien finden find / -nouser
Passwort setzen passwd <name>