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
-mverwenden, sonst kein Home-Verzeichnis - Debian/Ubuntu:
adduserist benutzerfreundlicher,useraddfür Scripts - Gruppen: Mit
-Gmüssen Gruppen bereits existieren - Passwort:
useraddsetzt kein Passwort, danachpasswdnutzen - System-User:
-rfür Dienste ohne Login-Berechtigung - UID: System vergibt automatisch freie UID,
-unur 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
-awerden bestehende Gruppenmitgliedschaften entfernt - Logout erforderlich: Bei kritischen Änderungen Benutzer ausloggen
- Gruppenwechsel: Änderungen wirken erst nach erneutem Login
- Home verschieben:
-mnur mit-dzusammen 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:
-rlöscht unwiderruflich das Home-Verzeichnis - Backup: Vor Löschung wichtige Daten sichern
- Prozesse: Benutzer sollte ausgeloggt sein, keine laufenden Prozesse
- Dateien: Ohne
-rbleiben Dateien im System erhalten (verwaiste UID) - Force:
-fmit Vorsicht verwenden, kann Instabilität verursachen - Cron/Mail: Crontabs und Mail-Spool werden mit
-rentfernt
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
