Der Befehl useradd erstellt neue Benutzerkonten. Als Low-Level-Werkzeug bietet er volle Kontrolle über alle Kontoparameter wie UID, Gruppen, Home-Verzeichnis und Login-Shell.
Syntax des useradd-Befehls
Die allgemeine Syntax lautet:
useradd [OPTIONEN] BENUTZERNAME
OPTIONEN- Flags zur Konfiguration des neuen Kontos.BENUTZERNAME- Der Name des neuen Benutzers.
Nur root oder Benutzer mit sudo-Rechten können useradd ausführen. Der Befehl liest Standardwerte aus /etc/default/useradd und /etc/login.defs.
Einen neuen Benutzer anlegen
Im einfachsten Fall rufst du useradd mit dem gewünschten Benutzernamen auf:
sudo useradd max
Ohne weitere Optionen verwendet useradd die Standardeinstellungen aus /etc/default/useradd. Der Befehl erstellt Einträge in /etc/passwd, /etc/shadow, /etc/group und /etc/gshadow.
Nach dem Anlegen musst du ein Passwort setzen, damit sich der Benutzer anmelden kann:
sudo passwd max
Du wirst zweimal zur Eingabe des Passworts aufgefordert.
Benutzer mit Home-Verzeichnis anlegen
Auf den meisten Distributionen erstellt useradd kein Home-Verzeichnis. Verwende die Option -m (--create-home), um eines anzulegen:
sudo useradd -m max
Das Home-Verzeichnis wird unter /home/max erstellt und mit den Dateien aus /etc/skel befüllt. Diese Skeleton-Dateien enthalten typischerweise .bashrc, .bash_logout und .profile.
Anderes Home-Verzeichnis festlegen
Mit -d (--home) legst du das Home-Verzeichnis an einem anderen Ort an:
sudo useradd -m -d /opt/max max
Benutzer-ID (UID) festlegen
Jeder Benutzer hat eine eindeutige numerische ID (UID). Standardmäßig vergibt das System die nächste freie UID. Mit -u (--uid) legst du eine bestimmte UID fest:
sudo useradd -u 1500 max
Die UID überprüfst du mit dem id-Befehl:
id -u max
1500
Primäre Gruppe festlegen
Standardmäßig erstellt useradd eine Gruppe mit dem gleichen Namen wie der Benutzer. Mit -g (--gid) weist du eine existierende Gruppe als primäre Gruppe zu:
sudo useradd -g users max
Die Gruppe muss bereits existieren. Du kannst den Gruppennamen oder die GID angeben.
Zusätzliche Gruppen zuweisen
Mit -G (--groups) fügst du den Benutzer weiteren Gruppen hinzu:
sudo useradd -g users -G wheel,docker max
Hier ist users die primäre Gruppe, wheel und docker sind sekundäre Gruppen. Alle Gruppenmitgliedschaften zeigst du mit id an:
id max
uid=1002(max) gid=100(users) groups=100(users),10(wheel),993(docker)
Login-Shell festlegen
Die Standard-Shell ist distributionsabhängig (/bin/sh oder /bin/bash). Mit -s (--shell) legst du eine andere Shell fest:
sudo useradd -s /usr/bin/zsh max
Die Shell kannst du in /etc/passwd nachprüfen:
grep max /etc/passwd
max:x:1001:1001::/home/max:/usr/bin/zsh
Kommentar hinzufügen (GECOS-Feld)
Das Kommentarfeld speichert zusätzliche Informationen wie den vollständigen Namen. Verwende -c (--comment):
sudo useradd -c "Max Mustermann" max
Der Kommentar erscheint im fünften Feld von /etc/passwd.
Konto mit Ablaufdatum anlegen
Für temporäre Konten setzt du mit -e (--expiredate) ein Ablaufdatum im Format JJJJ-MM-TT:
sudo useradd -e 2025-06-30 praktikant
Das Ablaufdatum überprüfst du mit chage:
sudo chage -l praktikant
Systembenutzer anlegen
Systembenutzer werden für Dienste und Daemons verwendet. Sie haben UIDs aus einem niedrigeren Bereich und kein Ablaufdatum. Verwende -r (--system):
sudo useradd -r nginx
Standardwerte anzeigen und ändern
Die aktuellen Standardeinstellungen zeigst du mit -D an:
useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Um die Standard-Shell dauerhaft zu ändern:
sudo useradd -D -s /bin/bash
Zusammenfassung
Der useradd-Befehl erstellt Benutzerkonten mit präziser Kontrolle über alle Parameter. Die wichtigsten Optionen:
| Option | Beschreibung |
|---|---|
-m | Home-Verzeichnis erstellen |
-d | Home-Verzeichnis-Pfad festlegen |
-u | UID festlegen |
-g | Primäre Gruppe festlegen |
-G | Sekundäre Gruppen zuweisen |
-s | Login-Shell festlegen |
-c | Kommentar hinzufügen |
-e | Ablaufdatum setzen |
-r | Systembenutzer anlegen |
Auf Debian und Ubuntu steht alternativ der interaktive Befehl adduser zur Verfügung, der eine benutzerfreundlichere Oberfläche bietet.