> 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/linux/linux-users.md](https://docs.f3cloud.com/de/linux/linux-users.md).

# Benutzer unter Linux – anlegen, löschen, auflisten und sudo-Rechte vergeben

Benutzer unter Linux auf einem VPS. So legen Sie einen Benutzer mit den Befehlen adduser und useradd an, setzen ein Passwort, vergeben sudo-Rechte, sehen sich die Liste der Benutzer und Gruppen an, wechseln zu einem anderen Benutzer und löschen ihn. Geprüft unter Debian 12.

Nach der Bestellung eines Servers melden Sie sich als Benutzer **root** an, der keinerlei Einschränkungen hat. Für die ersten Schritte ist das bequem, ständig so zu arbeiten ist jedoch unsicher, und wenn mehrere Personen den Server nutzen, braucht jede ein eigenes Benutzerkonto. In diesem Artikel sehen wir uns an, wie Benutzer und Gruppen unter Linux aufgebaut sind, wie Sie einen Benutzer anlegen, ihm über `sudo` Administratorrechte geben, die Liste der Benutzer anzeigen und überflüssige löschen. Alle Befehle haben wir auf einem Testserver mit Debian 12 geprüft.

***

## Wie Benutzer und Gruppen aufgebaut sind

Linux wurde von Anfang an als System entwickelt, an dem viele Menschen gleichzeitig arbeiten, deshalb wird jede Aktion darin im Namen eines bestimmten Benutzers ausgeführt. Für das System ist ein Benutzer vor allem eine Zahl, die **UID**. Ein Name wie `ivan` ist für Menschen gedacht, der Kernel prüft die Rechte dagegen anhand der Nummer. Der Benutzer mit der UID 0 heißt `root`, und der Kernel erlaubt ihm alles, unabhängig von den Rechten an Dateien. Gewöhnliche Benutzer erhalten unter Debian und Ubuntu Nummern ab 1000, die Nummern darunter sind von Dienstkonten belegt. Unter ihnen laufen Programme, zum Beispiel ein Webserver oder eine Datenbank, und anmelden kann man sich mit ihnen am Server nicht.

Die Angaben zu den Benutzern werden in gewöhnlichen Textdateien gespeichert. In `/etc/passwd` sind für jeden Benutzer der Name, die UID, die Nummer der primären Gruppe, das Home-Verzeichnis und die Shell eingetragen, die bei der Anmeldung gestartet wird. Die Passwörter liegen getrennt davon in der Datei `/etc/shadow`, und zwar nicht die Passwörter selbst, sondern ihre Hashes, und lesen kann diese Datei nur root. Diese Trennung ist entstanden, weil `/etc/passwd` für alle Programme lesbar sein muss, die Hashes der Passwörter aber nicht jedem gezeigt werden dürfen.

Gruppen ermöglichen es, Rechte nicht jedem Benutzer einzeln, sondern mehreren auf einmal zu vergeben. Angenommen, der Ordner mit einer Website soll für drei Entwickler beschreibbar sein. Statt die Rechte für jeden von ihnen einzurichten, fügt man sie einer gemeinsamen Gruppe hinzu und gibt dieser Gruppe die Rechte. Auf dieselbe Weise werden unter Debian und Ubuntu Administratorrechte vergeben. Alle Mitglieder der Gruppe `sudo` können Befehle im Namen von root ausführen, wenn sie ihnen das Wort `sudo` voranstellen und ihr eigenes Passwort eingeben. Genau das ist der Hauptgrund, einen eigenen Benutzer anzulegen. Sie arbeiten mit gewöhnlichen Rechten und beschädigen das System nicht durch einen versehentlichen Befehl, und wenn wirklich etwas geändert werden muss, schreiben Sie bewusst `sudo` davor. Außerdem bleibt im Protokoll ein Eintrag darüber, wer welchen Befehl mit Administratorrechten ausgeführt hat.

***

## Was Sie brauchen

* **Eine SSH-Verbindung zum Server** als Benutzer `root`, zum Beispiel über [Termius](https://docs.f3cloud.com/de/vps/termius-connection.md).
* **Einen Server** mit Debian oder Ubuntu. Die Befehle `adduser` und `deluser` aus diesem Artikel gibt es nur in diesen Systemen, für die übrigen nennen wir einen Ersatz.

***

## 1. Legen Sie einen Benutzer an

Unter Debian und Ubuntu ist der Befehl `adduser` am bequemsten. Er legt selbst das Home-Verzeichnis an, kopiert die Standardeinstellungen hinein und fragt nach dem Passwort.

```bash
adduser ivan
```

Der Befehl bittet Sie, das Passwort zweimal einzugeben. Die Zeichen werden bei der Eingabe nicht angezeigt, das ist normal. Danach schlägt er vor, den vollständigen Namen, die Zimmernummer und Telefonnummern anzugeben. Diese Felder können Sie leer lassen, indem Sie einfach <kbd>Enter</kbd> drücken, und am Ende bestätigen Sie die Angaben mit `Y`.

<figure><img src="https://docs.f3cloud.com/img/linux-adduser.png" alt="Anlegen des Benutzers ivan mit dem Befehl adduser, Eingabe von Passwort und vollständigem Namen"><figcaption><p>adduser hat den Benutzer, die Gruppe und das Home-Verzeichnis angelegt</p></figcaption></figure>

> **Wenn es den Befehl adduser nicht gibt.**
>
> In anderen Distributionen, zum Beispiel AlmaLinux oder Rocky Linux, legt man Benutzer mit dem Befehl `useradd` an, und das Passwort wird separat gesetzt. Der Parameter `-m` legt das Home-Verzeichnis an, und `-s` legt die Shell fest.
>
> ```bash
> useradd -m -s /bin/bash ivan
> passwd ivan
> ```

***

## 2. Vergeben Sie sudo-Rechte

Auf unseren Servern mit Debian 12 ist das Programm `sudo` standardmäßig nicht installiert, deshalb installieren Sie es zuerst. Wenn es den Befehl `sudo` auf Ihrem Server bereits gibt, können Sie diesen Schritt überspringen.

```bash
apt update && apt install -y sudo
```

Fügen Sie den Benutzer jetzt der Gruppe `sudo` hinzu und prüfen Sie, ob er tatsächlich darin ist.

```bash
usermod -aG sudo ivan
id ivan
```

In der Ausgabe des Befehls `id` sollte in der Liste **groups** die Gruppe `27(sudo)` erscheinen. Um sicherzugehen, dass die Rechte funktionieren, wechseln Sie zum neuen Benutzer und führen Sie einen beliebigen Befehl über `sudo` aus.

```bash
su - ivan
sudo whoami
```

`sudo` fragt nach dem Passwort des Benutzers `ivan`, nicht nach dem von root. Wenn der Befehl `root` ausgegeben hat, hat der Benutzer Administratorrechte. Zurück zu root gelangen Sie mit dem Befehl `exit`.

<figure><img src="https://docs.f3cloud.com/img/linux-sudo.png" alt="Hinzufügen des Benutzers zur Gruppe sudo, Ausgabe von id und Prüfung mit sudo whoami"><figcaption><p>Der Benutzer ist in der Gruppe sudo, der Befehl wurde im Namen von root ausgeführt</p></figcaption></figure>

Jetzt können Sie sich als neuer Benutzer per SSH mit dem Server verbinden, zum Beispiel mit `ssh ivan@IP_DES_SERVERS`. Wir haben geprüft, dass die Anmeldung mit Passwort auf unserem Image von Debian 12 sofort funktioniert. Mehr über Gruppen und darüber, wie Sie einen Benutzer aus `sudo` entfernen, erfahren Sie im Artikel über den [Befehl usermod](https://docs.f3cloud.com/de/linux/usermod-command-guide.md).

> **Der nächste Schritt für mehr Sicherheit.**
>
> Wenn die Anmeldung als neuer Benutzer funktioniert, richten Sie für ihn die Anmeldung per SSH-Schlüssel ein und verbieten Sie die Anmeldung als root. Wie das geht, erfahren Sie im Artikel über [SSH-Schlüssel](https://docs.f3cloud.com/de/vps/security/ssh-keys.md).

***

## 3. Sehen Sie nach, welche Benutzer es auf dem Server gibt

Die vollständige Liste der Benutzerkonten steht in `/etc/passwd`, dort sind neben den Menschen aber auch Dutzende Dienstbenutzer aufgeführt. Um nur die gewöhnlichen zu sehen, wählen Sie die Zeilen mit einer UID ab 1000 aus.

```bash
# Name, UID, Home-Verzeichnis und Shell der gewöhnlichen Benutzer
awk -F: '$3>=1000 && $3<65534 {print $1, $3, $6, $7}' /etc/passwd

# Wer zur Gruppe sudo gehört
getent group sudo
```

<figure><img src="https://docs.f3cloud.com/img/linux-users-list.png" alt="Liste der gewöhnlichen Benutzer aus /etc/passwd und Mitglieder der Gruppe sudo"><figcaption><p>Auf dem Server gibt es zwei gewöhnliche Benutzer, sudo-Rechte hat nur ivan</p></figcaption></figure>

Noch einige nützliche Befehle.

```bash
# Gruppen des Benutzers
groups ivan

# Wer gerade mit dem Server verbunden ist
who

# Verlauf der Anmeldungen am Server
last -n 10
```

***

## 4. Ändern Sie das Passwort eines Benutzers

Root kann jedem Benutzer ein neues Passwort setzen. Ein gewöhnlicher Benutzer ändert sein eigenes Passwort mit demselben Befehl ohne Namen.

```bash
# Passwort für den Benutzer ivan
passwd ivan

# Eigenes Passwort
passwd
```

***

## 5. Löschen Sie einen Benutzer

Der Befehl `deluser` mit dem Parameter `--remove-home` löscht den Benutzer zusammen mit seinem Home-Verzeichnis und seinen cron-Aufgaben.

```bash
deluser --remove-home anna
```

<figure><img src="https://docs.f3cloud.com/img/linux-deluser.png" alt="Löschen des Benutzers anna mit dem Befehl deluser und dem Parameter --remove-home"><figcaption><p>Der Benutzer und sein Home-Verzeichnis wurden gelöscht</p></figcaption></figure>

In Systemen ohne `deluser` verwendet man `userdel -r anna`. Wenn Sie einem Benutzer nur die Administratorrechte entziehen möchten, müssen Sie ihn nicht löschen. Es genügt, ihn aus der Gruppe `sudo` zu entfernen.

```bash
deluser ivan sudo
```

> **Sichern Sie vor dem Löschen die benötigten Dateien.**
>
> `--remove-home` löscht unwiderruflich alles, was im Verzeichnis `/home/name` liegt. Wenn dort noch Projekte oder Schlüssel liegen, kopieren Sie sie zuerst.

***

## Häufige Fragen

<details>

<summary>sudo: command not found</summary>

Das Programm `sudo` ist nicht installiert. Führen Sie als `root` den Befehl `apt install -y sudo` aus. Wenn Sie bereits als gewöhnlicher Benutzer arbeiten, wechseln Sie zuerst mit dem Befehl `su -` zu root und geben Sie das Passwort von root ein.

</details>

<details>

<summary>ivan is not in the sudoers file</summary>

Der Benutzer gehört nicht zur Gruppe `sudo`. Fügen Sie ihn als root mit dem Befehl `usermod -aG sudo ivan` hinzu. Die Änderung wird erst nach einer neuen Anmeldung wirksam, deshalb muss sich der Benutzer abmelden und erneut verbinden.

</details>

<details>

<summary>Worin sich su und sudo unterscheiden</summary>

`su - name` wechselt vollständig zu einem anderen Benutzer und fragt nach **dessen** Passwort. `sudo befehl` führt einen einzelnen Befehl im Namen von root aus und fragt nach **Ihrem** Passwort. Deshalb müssen Sie für die Arbeit mit `sudo` niemandem das Passwort von root mitteilen, und die Anmeldung als root selbst lässt sich sogar ganz verbieten.

</details>

<details>

<summary>Der Benutzer kann sich nicht per SSH verbinden</summary>

1. Prüfen Sie mit dem Befehl `passwd -S ivan`, ob ein Passwort gesetzt ist. In der zweiten Spalte sollte `P` stehen.
2. Prüfen Sie, ob der Benutzer eine gewöhnliche Shell hat und nicht `/usr/sbin/nologin`. Sie steht im letzten Feld der Zeile des Benutzers in `/etc/passwd`.
3. Wenn in den SSH-Einstellungen die Anmeldung per Passwort deaktiviert ist, braucht der Benutzer einen SSH-Schlüssel.

</details>

***

## Unsere Ressourcen

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