> Die vollständige Liste der Artikel steht in [llms.txt](https://docs.f3cloud.com/llms.txt). Jede Seite gibt es auch als Markdown, dazu einfach .md an die Adresse anhängen. Diese Seite als Markdown: [https://docs.f3cloud.com/de/technical-docs/usermod-command-guide.md](https://docs.f3cloud.com/de/technical-docs/usermod-command-guide.md).

# Usermod unter Linux – Benutzer verwalten

So verwenden Sie den Befehl usermod unter Linux. Benutzer zu den Gruppen sudo und docker hinzufügen, Namen, Home-Verzeichnis, Shell und UID ändern, Konto sperren, Spickzettel und häufige Fehler.

**usermod** ist der Befehl, mit dem Sie ein bereits bestehendes Benutzerkonto unter Linux ändern. Damit fügen Sie einen Benutzer zu Gruppen hinzu, benennen ihn um, verschieben sein Home-Verzeichnis, ändern die Shell und sperren vorübergehend die Anmeldung.

Alle Befehle unten führen Sie als **root** oder über `sudo` aus. Wir haben sie unter Debian 12 getestet, unter Ubuntu und anderen Distributionen funktionieren sie genauso.

> **Benutzer anlegen statt ändern.**
>
> Wenn es den Benutzer noch nicht gibt, legen Sie ihn zuerst an.\
> Unter Ubuntu und Debian geht das mit `adduser name`.\
> Unter AlmaLinux und CentOS mit `useradd -m name`.
>
> Ein Beispiel mit einem eigenen Benutzer für die Anmeldung per SSH finden Sie im Artikel [zur Anmeldung mit SSH-Schlüsseln](https://docs.f3cloud.com/de/client-area/protect-vps-from-unauthorised-access/ssh-keys.md).

***

### Aktuelle Einstellungen eines Benutzers anzeigen

Vor jeder Änderung lohnt es sich zu prüfen, was beim Benutzer gerade eingestellt ist.

```bash
# UID, primäre Gruppe und alle zusätzlichen Gruppen des Benutzers
id username

# Zeile des Benutzers aus /etc/passwd mit Home-Verzeichnis und Shell
getent passwd username
```

***

### Benutzer zu einer Gruppe hinzufügen

Das ist die häufigste Aufgabe, zum Beispiel um Administratorrechte über `sudo` oder Zugriff auf Docker zu geben.

```bash
# Benutzer zur Gruppe sudo hinzufügen (unter Ubuntu und Debian)
usermod -aG sudo username

# Unter AlmaLinux, CentOS und Oracle Linux gehören Administratoren zur Gruppe wheel
usermod -aG wheel username

# Mehrere Gruppen auf einmal mit Komma und ohne Leerzeichen aufzählen
usermod -aG docker,www-data username
```

> **Vergessen Sie den Parameter -a nicht.**
>
> Der Parameter `-G` ohne `-a` ersetzt die gesamte Liste der zusätzlichen Gruppen. Der Benutzer ist dann nur noch in den angegebenen Gruppen und verliert alle anderen, zum Beispiel den Zugriff auf `sudo`. Zum Hinzufügen schreiben Sie deshalb immer `-aG`.

Neue Gruppen gelten ab der nächsten Anmeldung des Benutzers. Wenn er gerade per SSH verbunden ist, sollte er sich neu verbinden und das Ergebnis dann mit dem Befehl `id` prüfen.

***

### Benutzer aus einer Gruppe entfernen

```bash
# Benutzer aus der Gruppe docker entfernen
gpasswd -d username docker
```

Dasselbe erreichen Sie mit dem Befehl `usermod -rG docker username`, die Variante mit `gpasswd` funktioniert aber in allen Distributionen.

***

### Primäre Gruppe ändern

Jeder Benutzer hat genau eine primäre Gruppe. Diese Gruppe erhalten alle neuen Dateien, die er anlegt.

```bash
# developers zur primären Gruppe des Benutzers machen. Die Gruppe muss bereits existieren
usermod -g developers username
```

***

### Benutzer umbenennen

Der Parameter `-l` ändert nur den Login. Home-Verzeichnis und persönliche Gruppe behalten dabei ihre alten Namen, deshalb benennt man sie meist zusammen mit dem Login um.

```bash
# Login olduser in newuser ändern
usermod -l newuser olduser

# Home-Verzeichnis samt Inhalt unter den neuen Namen verschieben
usermod -d /home/newuser -m newuser

# Persönliche Gruppe des Benutzers umbenennen
groupmod -n newuser olduser
```

> **Der Benutzer darf nicht angemeldet sein.**
>
> Einen Benutzer, der laufende Prozesse hat, können Sie nicht umbenennen. Bitten Sie ihn, sich abzumelden, oder beenden Sie seine Sitzungen und wiederholen Sie dann den Befehl.

***

### Home-Verzeichnis verschieben

```bash
# Neues Home-Verzeichnis festlegen und alle Dateien dorthin verschieben
usermod -d /data/home/username -m username
```

Ohne den Parameter `-m` ändert sich nur der Pfad in den Einstellungen, die Dateien bleiben am alten Ort.

***

### Shell ändern

```bash
# Liste der im System installierten Shells
cat /etc/shells

# bash zur Shell des Benutzers machen
usermod -s /bin/bash username

# Anmeldung an der Konsole verbieten, zum Beispiel für einen Dienstbenutzer
usermod -s /usr/sbin/nologin username
```

***

### Benutzer sperren und entsperren

```bash
# Anmeldung mit Passwort sperren
usermod -L username

# Sperre aufheben
usermod -U username

# Konto vollständig deaktivieren, indem wir ein Ablaufdatum in der Vergangenheit setzen
usermod -e 1 username

# Ablaufdatum entfernen
usermod -e "" username
```

> **Die Passwortsperre verhindert nicht die Anmeldung per Schlüssel.**
>
> `usermod -L` verbietet nur die Anmeldung mit Passwort. Wenn für den Benutzer ein SSH-Schlüssel eingerichtet ist, kann er sich weiterhin anmelden. Um den Zugriff vollständig zu sperren, verwenden Sie `usermod -e 1` oder löschen Sie seine Schlüssel aus `~/.ssh/authorized_keys`.

***

### UID ändern

```bash
# Dem Benutzer die UID 1050 zuweisen. Die Nummer darf nicht vergeben sein
usermod -u 1050 username
```

`usermod` ändert den Eigentümer der Dateien im Home-Verzeichnis des Benutzers selbst. Dateien an anderen Orten behalten die alte UID, so finden und korrigieren Sie sie.

```bash
# Statt 1001 geben Sie die alte UID des Benutzers an
find / -xdev -user 1001 -exec chown -h username {} \;
```

***

### Spickzettel

| Befehl | Was er bewirkt |
| --- | --- |
| `usermod -aG gruppe name` | Zu einer zusätzlichen Gruppe hinzufügen |
| `gpasswd -d name gruppe` | Aus einer Gruppe entfernen |
| `usermod -g gruppe name` | Primäre Gruppe ändern |
| `usermod -l neu alt` | Benutzer umbenennen |
| `usermod -d pfad -m name` | Home-Verzeichnis verschieben |
| `usermod -s shell name` | Shell ändern |
| `usermod -L name` / `-U` | Passwort sperren oder entsperren |
| `usermod -e 1 name` | Konto vollständig deaktivieren |
| `usermod -u UID name` | UID ändern |

***

### Häufige Fragen

<details>

<summary>Ich habe den Benutzer zu einer Gruppe hinzugefügt, aber die Rechte sind nicht da</summary>

Gruppen werden bei der Anmeldung übernommen. Der Benutzer muss sich abmelden und neu verbinden, danach zeigt der Befehl `id` die neue Gruppe.

</details>

<details>

<summary>Die Meldung sagt, dass die Gruppe nicht existiert</summary>

Legen Sie die Gruppe zuerst mit dem Befehl `groupadd gruppenname` an und führen Sie dann `usermod` erneut aus. Eine Liste aller Gruppen zeigt der Befehl `getent group`.

</details>

<details>

<summary>Der Benutzer lässt sich nicht umbenennen</summary>

Höchstwahrscheinlich ist der Benutzer gerade angemeldet oder hat laufende Prozesse. Sehen Sie sich diese mit `ps -u username` an, beenden Sie die Sitzungen und wiederholen Sie `usermod -l`.

</details>

<details>

<summary>Versehentlich usermod -G ohne -a ausgeführt</summary>

Der Benutzer ist nur noch in den angegebenen Gruppen. Fügen Sie die nötigen Gruppen mit demselben Befehl und dem Parameter `-aG` wieder hinzu, zum Beispiel `usermod -aG sudo username`. Wenn das Ihr einziger Administrator war und der Zugriff auf `sudo` weg ist, melden Sie sich über die Schaltfläche <kbd>Console</kbd> im Kundenbereich als root am Server an.

</details>

***

### Unsere Ressourcen

**Telegram-Kanal:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Hosting-Website:** [https://f3cloud.com](https://f3cloud.com/de)
