# useradd — Benutzerkonten und Gruppen unter Linux verwalten

> Praxis-Guide zu useradd, usermod und userdel: Linux-Benutzerkonten, Home-Verzeichnisse, Gruppen und Passwörter sicher anlegen, ändern und löschen.

Source: https://www.jpkc.com/db/cheatsheets/shell-system/useradd/

<!-- PROSE:intro -->
useradd ist das systemnahe Standardwerkzeug, um unter Linux Benutzerkonten direkt anzulegen – ohne `-m` entsteht dabei kein Home-Verzeichnis, und ohne anschließendes `passwd` bleibt das Konto gesperrt. Auf Debian und Ubuntu nimmt dir das komfortablere `adduser` diese Schritte interaktiv ab und setzt sinnvolle Vorgaben. Zusammen mit `usermod`, `userdel`, `passwd` und den Gruppen-Befehlen verwaltest du Konten, Shells und Gruppenmitgliedschaften. Fast jede dieser Aktionen braucht `sudo` und greift tief ins System ein.
<!-- PROSE:intro:end -->

## Benutzer anlegen

`useradd <user>` — Legt einen neuen Benutzer an (minimal, auf manchen Distributionen ohne Home-Verzeichnis).

```bash
sudo useradd john
```

`useradd -m <user>` — Legt einen Benutzer samt Home-Verzeichnis an.

```bash
sudo useradd -m john
```

`useradd -m -s <shell> <user>` — Legt einen Benutzer mit bestimmter Login-Shell an.

```bash
sudo useradd -m -s /bin/bash john
```

`useradd -m -G <groups> <user>` — Legt einen Benutzer an und fügt ihn Zusatzgruppen hinzu.

```bash
sudo useradd -m -G sudo,docker john
```

`useradd -r -s /usr/sbin/nologin <user>` — Legt ein Systemkonto an (kein Login, für Dienste).

```bash
sudo useradd -r -s /usr/sbin/nologin appuser
```

`useradd -m -c '<comment>' <user>` — Legt einen Benutzer mit vollem Namen/Kommentar an.

```bash
sudo useradd -m -c 'John Doe' john
```

## Benutzer ändern

`usermod -aG <group> <user>` — Fügt einen Benutzer einer Gruppe hinzu (anhängen, bestehende Gruppen bleiben erhalten).

```bash
sudo usermod -aG docker john
```

`usermod -s <shell> <user>` — Ändert die Login-Shell eines Benutzers.

```bash
sudo usermod -s /bin/zsh john
```

`usermod -l <newname> <oldname>` — Benennt ein Benutzerkonto um.

```bash
sudo usermod -l johndoe john
```

`usermod -d <dir> -m <user>` — Ändert das Home-Verzeichnis und verschiebt die Dateien.

```bash
sudo usermod -d /home/johndoe -m john
```

`usermod -L <user>` — Sperrt ein Benutzerkonto (Login deaktivieren).

```bash
sudo usermod -L john
```

`usermod -U <user>` — Entsperrt ein Benutzerkonto.

```bash
sudo usermod -U john
```

## Benutzer löschen

`userdel <user>` — Löscht einen Benutzer (Home-Verzeichnis bleibt erhalten).

```bash
sudo userdel john
```

`userdel -r <user>` — Löscht einen Benutzer und entfernt sein Home-Verzeichnis.

```bash
sudo userdel -r john
```

## Passwörter

`passwd <user>` — Setzt oder ändert das Passwort eines Benutzers.

```bash
sudo passwd john
```

`passwd -l <user>` — Sperrt das Passwort eines Benutzers.

```bash
sudo passwd -l john
```

`passwd -u <user>` — Entsperrt das Passwort eines Benutzers.

```bash
sudo passwd -u john
```

`passwd -e <user>` — Lässt das Passwort ablaufen (erzwingt Änderung bei nächster Anmeldung).

```bash
sudo passwd -e john
```

`chage -l <user>` — Zeigt Informationen zur Passwort-Alterung an.

```bash
sudo chage -l john
```

`chage -M <days> <user>` — Setzt die maximale Gültigkeitsdauer des Passworts in Tagen.

```bash
sudo chage -M 90 john
```

## Gruppen

`groupadd <group>` — Legt eine neue Gruppe an.

```bash
sudo groupadd developers
```

`groupdel <group>` — Löscht eine Gruppe.

```bash
sudo groupdel developers
```

`groups <user>` — Zeigt alle Gruppen an, denen ein Benutzer angehört.

```bash
groups john
```

`gpasswd -a <user> <group>` — Fügt einen Benutzer einer Gruppe hinzu.

```bash
sudo gpasswd -a john docker
```

`gpasswd -d <user> <group>` — Entfernt einen Benutzer aus einer Gruppe.

```bash
sudo gpasswd -d john docker
```

`getent group <group>` — Zeigt die Mitglieder einer Gruppe an.

```bash
getent group docker
```

## Informationen & Auflisten

`id <user>` — Zeigt UID, GID und Gruppenzugehörigkeit eines Benutzers an.

```bash
id john
```

`whoami` — Zeigt den aktuellen Benutzernamen an.

```bash
whoami
```

`getent passwd <user>` — Zeigt Kontodaten eines Benutzers aus der passwd-Datenbank an.

```bash
getent passwd john
```

`cat /etc/passwd | grep <user>` — Sucht einen Benutzer in der passwd-Datei.

```bash
cat /etc/passwd | grep john
```

`last <user>` — Zeigt die letzten Anmeldezeiten eines Benutzers an.

```bash
last john
```

<!-- PROSE:outro -->
## Fazit

Für den Alltag reichen wenige Befehle: `useradd -m` legt einen vollwertigen Account samt Home-Verzeichnis an, `passwd` setzt das erste Passwort, und `usermod -aG` ergänzt Gruppenmitgliedschaften. Genau dort lauert die häufigste Falle – vergisst du das `-a`, ersetzt `usermod -G` alle bestehenden Zusatzgruppen, statt sie zu ergänzen. Sei dir außerdem bewusst, dass die Mitgliedschaft in `sudo` oder `docker` faktisch root-äquivalente Rechte verleiht und nur ganz bewusst vergeben werden sollte. Und `userdel -r` löscht das komplette Home-Verzeichnis mitsamt allen Daten – ohne Rückfrage.

## Weiterführende Links

- [ubuntuusers-Wiki: Benutzer und Gruppen](https://wiki.ubuntuusers.de/Benutzer_und_Gruppen/) – deutschsprachige Übersicht über Konten, Gruppen und Rechte
- [ubuntuusers-Wiki: adduser](https://wiki.ubuntuusers.de/adduser/) – das komfortable Debian/Ubuntu-Frontend zum Anlegen von Benutzern
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [su](https://www.jpkc.com/db/cheatsheets/shell-system/su/) – zu einem anderen Benutzer oder zu root wechseln
- [sudo](https://www.jpkc.com/db/cheatsheets/shell-system/sudo/) – einzelne Befehle mit erhöhten Rechten ausführen
- [id](https://www.jpkc.com/db/cheatsheets/shell-system/id/) – UID, GID und Gruppenzugehörigkeit eines Benutzers anzeigen

