Inhaltsverzeichnis

Benutzerverwaltung unter Linux

Die Benutzer- und Gruppenverwaltung erfolgt unter Linux über verschiedene Kommandos.

Benutzerverwaltung

useradd - Benutzer anlegen

Kurzfassung: Mit useradd wird ein neuer Benutzer unter Linux angelegt. Das Kommando erstellt Benutzerkonten mit Home-Verzeichnis, Login-Shell und Gruppenmitgliedschaften. Essentiell für die Benutzerverwaltung in Mehrbenutzer-Systemen und zentral für Systemadministration.

Übersicht

useradd ist das grundlegende Kommando zum Anlegen neuer Benutzerkonten. Es erstellt Einträge in /etc/passwd, /etc/shadow, /etc/group und optional ein Home-Verzeichnis mit Skeleton-Dateien.

Voraussetzungen
  • Root-Rechte (sudo)
  • Eindeutiger Benutzername (noch nicht vorhanden)
  • Verfügbarer UID-Bereich (User ID)
  • Optionale: Gruppen müssen bereits existieren
Syntax
useradd [Optionen] BENUTZERNAME
Wichtige Optionen
-m                    # Home-Verzeichnis anlegen
-d /pfad/zu/home      # Home-Verzeichnis festlegen
-s /bin/bash          # Login-Shell festlegen
-g gruppe             # Primäre Gruppe festlegen
-G gruppen            # Zusätzliche Gruppen (kommagetrennt)
-c "kommentar"         # Kommentar (Name, E-Mail, etc.)
-u UID                # Spezifische User-ID
-e YYYY-MM-DD         # Ablaufdatum des Kontos
-p encrypted_pwd      # Verschlüsseltes Passwort
Anleitung
Schritt 1: Einfachen Benutzer anlegen
# Minimale Variante
sudo useradd alice
 
# Mit Home-Verzeichnis (empfohlen)
sudo useradd -m bob
 
# Vollständiges Beispiel
sudo useradd -m -s /bin/bash charlie
Schritt 2: Benutzer mit Details anlegen
# Mit Kommentar und spezifischer Shell
sudo useradd -m -c "Alice Mustermann" -s /bin/bash alice
 
# Mit Home-Verzeichnis an spezifischem Ort
sudo useradd -m -d /data/users/bob -s /bin/bash bob
 
# Mit primärer und zusätzlichen Gruppen
sudo useradd -m -g users -G sudo,docker charlie
Schritt 3: System-Benutzer anlegen
# System-Benutzer (keine Login-Shell)
sudo useradd -r -s /usr/sbin/nologin appuser
 
# Mit spezifischem Home für Dienst
sudo useradd -r -m -d /opt/myapp -s /bin/false myapp
Schritt 4: Passwort setzen
# Nach Anlegen Passwort setzen (interaktiv)
sudo passwd alice
 
# Benutzer zwingen, Passwort beim ersten Login zu ändern
sudo passwd -e alice
 
# Komplett in einem Schritt
sudo useradd -m alice && sudo passwd alice
Schritt 5: Mit Ablaufdatum
# Temporärer Account mit Ablaufdatum
sudo useradd -m -e 2026-12-31 tempuser
 
# Prüfen
sudo chage -l tempuser
Konfigurationsdateien
/etc/default/useradd  # Standard-Werte für useradd
/etc/login.defs       # System-weite Einstellungen
/etc/skel/            # Skeleton-Dateien für neue Home-Verzeichnisse
/etc/passwd           # Benutzerinformationen
/etc/shadow           # Passwort-Hashes
/etc/group            # Gruppeninformationen
Unterschied zu adduser
# useradd: Low-level, manuelle Konfiguration
sudo useradd -m -s /bin/bash alice
 
# adduser: High-level, interaktiv (Debian/Ubuntu)
sudo adduser alice   # Fragt automatisch nach Details
Hinweise
  • Home-Verzeichnis: Immer -m verwenden, sonst kein Home-Verzeichnis
  • Debian/Ubuntu: adduser ist benutzerfreundlicher, useradd für Scripts
  • Gruppen: Mit -G müssen Gruppen bereits existieren
  • Passwort: useradd setzt kein Passwort, danach passwd nutzen
  • System-User: -r für Dienste ohne Login-Berechtigung
  • UID: System vergibt automatisch freie UID, -u nur bei Bedarf
Siehe auch
Quellen

usermod - Benutzerkonten ändern

Kurzfassung: Mit usermod werden bestehende Benutzerkonten geändert. Das Kommando ermöglicht Änderungen von Login-Namen, Home-Verzeichnis, Shell, Gruppen und weiteren Benutzerattributen. Zentral für die Verwaltung und Anpassung von Benutzerkonten ohne Neuanlage.

Übersicht

usermod (user modify) ermöglicht die Modifikation bestehender Benutzerkonten. Es ändert Einträge in /etc/passwd, /etc/shadow und /etc/group und kann Home-Verzeichnisse verschieben sowie Gruppenmitgliedschaften anpassen.

Voraussetzungen
  • Root-Rechte (sudo)
  • Benutzer darf nicht eingeloggt sein (bei kritischen Änderungen)
  • Gruppen müssen existieren (bei Gruppenwechsel)
  • Ausreichend Speicherplatz (bei Home-Verzeichnis-Verschiebung)
Syntax
usermod [Optionen] BENUTZERNAME
Wichtige Optionen
-aG gruppe           # Zu Gruppe hinzufügen (append)
-G gruppe1,gruppe2   # Gruppenmitgliedschaften setzen (ersetzt alle)
-l neuer_name        # Benutzername ändern
-d /neues/home       # Home-Verzeichnis ändern
-m                   # Home-Verzeichnis verschieben (mit -d)
-s /bin/zsh          # Login-Shell ändern
-L                   # Benutzerkonto sperren (lock)
-U                   # Benutzerkonto entsperren (unlock)
-e YYYY-MM-DD        # Ablaufdatum setzen
-c "kommentar"        # Kommentar/GECOS ändern
Anleitung
Schritt 1: Zu Gruppen hinzufügen
# Benutzer zu einzelner Gruppe hinzufügen
sudo usermod -aG docker alice
 
# Zu mehreren Gruppen hinzufügen
sudo usermod -aG sudo,docker,www-data bob
 
# ACHTUNG: Ohne -a werden alle anderen Gruppen entfernt!
sudo usermod -G docker alice  # Alice ist NUR noch in docker
Schritt 2: Login-Shell ändern
# Shell auf zsh ändern
sudo usermod -s /bin/zsh alice
 
# Shell auf bash zurück
sudo usermod -s /bin/bash alice
 
# Login deaktivieren
sudo usermod -s /usr/sbin/nologin serviceuser
Schritt 3: Benutzername ändern
# Benutzer muss ausgeloggt sein!
sudo usermod -l neuer_name alter_name
 
# Mit Home-Verzeichnis umbenennen
sudo usermod -l alice_neu alice_alt -d /home/alice_neu -m
Schritt 4: Home-Verzeichnis verschieben
# Home-Verzeichnis verschieben
sudo usermod -d /data/users/alice -m alice
 
# Nur Pfad ändern, nicht verschieben
sudo usermod -d /new/path alice
Schritt 5: Konto sperren/entsperren
# Konto sperren (prepend ! zu Passwort-Hash)
sudo usermod -L alice
 
# Konto entsperren
sudo usermod -U alice
 
# Status prüfen
sudo passwd -S alice
Schritt 6: Ablaufdatum setzen
# Konto läuft am 31.12.2026 ab
sudo usermod -e 2026-12-31 tempuser
 
# Ablauf entfernen
sudo usermod -e "" tempuser
 
# Prüfen
sudo chage -l tempuser
Typische Anwendungsfälle
# Benutzer zu sudo-Gruppe hinzufügen
sudo usermod -aG sudo alice
 
# Webentwickler-Setup
sudo usermod -aG www-data,docker bob
 
# Shell für Power-User ändern
sudo usermod -s /bin/zsh charlie
 
# Service-Account sichern
sudo usermod -s /usr/sbin/nologin -L serviceaccount
Hinweise
  • -aG wichtig: Ohne -a werden bestehende Gruppenmitgliedschaften entfernt
  • Logout erforderlich: Bei kritischen Änderungen Benutzer ausloggen
  • Gruppenwechsel: Änderungen wirken erst nach erneutem Login
  • Home verschieben: -m nur mit -d zusammen verwenden
  • Konto sperren: -L ändert nur Passwort, SSH-Keys funktionieren weiter
  • Primary Group: Mit -g ändern (selten nötig)
Siehe auch
Quellen

userdel - Benutzer löschen

Kurzfassung: Mit userdel wird ein Benutzerkonto gelöscht. Das Kommando entfernt den Benutzer aus dem System und kann optional auch das Home-Verzeichnis und Mailspool löschen. Wichtig für Benutzerverwaltung und Systemaufräumung, erfordert sorgfältige Handhabung wegen Datenverlustgefahr.

Übersicht

userdel entfernt Benutzerkonten aus dem System durch Löschen der Einträge in /etc/passwd, /etc/shadow und /etc/group. Optional werden Home-Verzeichnis und Dateien im System entfernt.

Voraussetzungen
  • Root-Rechte (sudo)
  • Benutzer sollte ausgeloggt sein
  • Keine laufenden Prozesse des Benutzers
  • Backup wichtiger Daten vor Löschung
Syntax
userdel [Optionen] BENUTZERNAME
Wichtige Optionen
-r, --remove          # Home-Verzeichnis und Mailspool löschen
-f, --force           # Erzwungenes Löschen (auch bei Login/laufenden Prozessen)
-Z, --selinux-user    # SELinux-User-Mapping entfernen
-h, --help            # Hilfe anzeigen
Anleitung
Schritt 1: Benutzer ohne Home-Verzeichnis löschen
# Nur Benutzer-Account löschen (Home bleibt erhalten)
sudo userdel alice
 
# Home-Verzeichnis bleibt unter /home/alice erhalten
ls -la /home/alice
Schritt 2: Benutzer mit Home-Verzeichnis löschen
# Benutzer inkl. Home-Verzeichnis und Mailspool löschen
sudo userdel -r bob
 
# Prüfen, ob gelöscht
ls /home/bob  # Fehler: Verzeichnis existiert nicht
Schritt 3: Vorbereitung vor Löschung
# Benutzer finden
id alice
grep alice /etc/passwd
 
# Laufende Prozesse prüfen
ps aux | grep alice
sudo pkill -u alice
 
# Login-Sessions prüfen
who | grep alice
sudo pkill -9 -u alice
Schritt 4: Erzwungenes Löschen
# Erzwungenes Löschen (auch bei laufenden Prozessen)
sudo userdel -rf charlie
 
# ACHTUNG: Kann System instabil machen!
# Besser: Erst Prozesse beenden, dann löschen
Schritt 5: Dateien nach Löschung aufräumen
# Verbleibende Dateien des Benutzers finden
sudo find / -user 1001 2>/dev/null
 
# Nach Benutzername suchen (wenn UID bekannt)
sudo find / -uid 1001 2>/dev/null
 
# Dateien einem anderen Benutzer zuweisen
sudo find / -user 1001 -exec chown root:root {} \;
 
# Oder löschen
sudo find / -user 1001 -delete 2>/dev/null
Sichere Löschung - Best Practice
# 1. Benutzer identifizieren
id username
 
# 2. Prozesse beenden
sudo pkill -u username
 
# 3. Login-Sessions beenden
sudo pkill -9 -u username
 
# 4. Backup erstellen (falls nötig)
sudo tar -czf /backup/username_home.tar.gz /home/username
 
# 5. Benutzer löschen
sudo userdel -r username
 
# 6. Verbleibende Dateien prüfen
sudo find / -user $(id -u username) 2>/dev/null
Unterschied zu deluser
# userdel: Low-level Kommando
sudo userdel -r alice
 
# deluser: High-level (Debian/Ubuntu), benutzerfreundlicher
sudo deluser --remove-home alice
Hinweise
  • Datenverlust: -r löscht unwiderruflich das Home-Verzeichnis
  • Backup: Vor Löschung wichtige Daten sichern
  • Prozesse: Benutzer sollte ausgeloggt sein, keine laufenden Prozesse
  • Dateien: Ohne -r bleiben Dateien im System erhalten (verwaiste UID)
  • Force: -f mit Vorsicht verwenden, kann Instabilität verursachen
  • Cron/Mail: Crontabs und Mail-Spool werden mit -r entfernt
Siehe auch
Quellen

Gruppenverwaltung

groupadd

Mit `groupadd` wird eine neue Gruppe angelegt.

Syntax
groupadd [Optionen] gruppenname
Wichtige Optionen
-g GID        – Gruppen-ID festlegen
-f            – Fehler ignorieren, falls Gruppe schon existiert
-K KEY=VALUE  – Konfigurationswert setzen
-o            – Erlaubt doppelte GIDs
-p PASSWD     – Passwort für die Gruppe setzen (selten genutzt)
Beispiel
groupadd admins
groupadd -g 2000 developers
groupadd -f admins
Weitere Informationen
man groupadd


groupmod

Mit `groupmod` kann eine bestehende Gruppe geändert werden.

Syntax
groupmod [Optionen] gruppenname
Wichtige Optionen
-n neuername   – Gruppe umbenennen
-g GID         – Neue Gruppen-ID festlegen
-o             – Erlaubt doppelte GIDs
Beispiel
groupmod -n neueadmins admins
groupmod -g 3000 admins
Weitere Informationen
man groupmod


groupdel

Mit `groupdel` wird eine Gruppe gelöscht.

Syntax
groupdel gruppenname
Beispiel
groupdel admins
Weitere Informationen
man groupdel


Erweiterte Verwaltung

Benutzer Ordner / Dateien

Datei Kommentar
/etc/default/useradd Hier sind die Standardwerte hinterlegt
/etc/passwd Benutzerinformationen (Username, UID, GID, Home-Verzeichnis, Shell)
/etc/shadow Verschlüsselte Passwörter und Passwort-Richtlinien (nur root lesbar)
/etc/group Gruppeninformationen (Gruppenname, GID, Gruppenmitglieder)
/etc/gshadow Gruppenpasswörtet
/etc/skel Vorlagenverzeichnis für neue Benutzer-Home-Verzeichnisse
/etc/bash.bashrc Systemweite Bash-Konfiguration für alle Benutzer
/etc/profile Die globale Konfiguration für Login-Shells
/etc/profile.d/ Weitere Scripte
/etc/environment Eine einfache Datei für systemweite Umgebungsvariablen
/etc/sudoers (visudo) Benutzer oder Gruppen Befehle mit Root-Rechten
~/.ssh Sicherheitsrelevante Schlüssel des Users
~/.bashrc Bei jedem neuen Terminal. Aliase, Farben, Shell-Anpassung
~/.bash_profile Nur beim System-LoginGrundeinstellungen der Sitzung
~/.bash_history FortlaufendSpeichert getippte Befehle

Weitere Hinweise

man useradd
man usermod
man userdel
man groupad
man groupmod
man groupdel