Wie füge ich Benutzer in Linux hinzu, ändere und entferne sie?

Grundlagen der Benutzerverwaltung in Linux

Die Verwaltung von Benutzerkonten ist eine zentrale Aufgabe für Systemadministratoren in jedem Betriebssystem. In einer Linux-Umgebung umfasst dies üblicherweise die Erstellung neuer Benutzerprofile, die Anpassung bestehender Konten – beispielsweise das Ändern des Home-Verzeichnisses oder der Standard-Shell – sowie das Sperren, Entsperren und Löschen von Benutzerzugängen.

Bevor wir uns die konkreten Befehle und Methoden für diese Aufgaben ansehen, werfen wir einen kurzen Blick auf die verschiedenen Arten von Benutzerkonten in Linux. Die hier gezeigten Befehle sind in den meisten gängigen Linux-Distributionen anwendbar, sofern nicht anders angegeben.

Benutzerkategorien

Root-Benutzer

Der Root-Benutzer ist der Administrator des Betriebssystems und verfügt über umfassende Rechte zur Ausführung aller Operationen. Typischerweise ist nur der Root-Benutzer berechtigt, grundlegende Systemprogramme und Bibliotheken zu installieren, zu deinstallieren oder zu aktualisieren. Er ist das einzige Konto mit systemweiten Berechtigungen und somit der mächtigste Benutzer auf dem System.

Spezielle Benutzer

Diese Konten sind in der Regel nicht für die direkte Anmeldung vorgesehen und haben nicht die gleichen Rechte wie der Root-Benutzer. Sie sind für spezifische Systemfunktionen oder Dienste zuständig, beispielsweise für die automatische Ausführung bestimmter Aufgaben. Beispiele hierfür sind Benutzer wie bin, sync, lp, mail, operator oder squid, die oft bei der Installation von Anwendungen automatisch erstellt werden.

Standardbenutzer

Normale Benutzer verfügen in der Regel nur über volle Berechtigungen in ihrem eigenen Arbeitsverzeichnis, meistens ihrem Home-Verzeichnis. Sie dürfen das System nicht verwalten oder Software installieren, es sei denn, sie erhalten temporäre, erhöhte Rechte über den Befehl sudo.

Benutzer hinzufügen

Debian/Ubuntu

Auf Debian- oder Ubuntu-basierten Systemen gibt es verschiedene Möglichkeiten, Benutzer über die Kommandozeile (CLI) hinzuzufügen. Der Befehl adduser ist ein Perl-Skript, das im Hintergrund den Befehl useradd verwendet, den wir später genauer betrachten werden. Da das Hinzufügen eines Benutzers eine privilegierte Aufgabe ist, ist sudo voranzustellen. Weitere Details, wie vollständiger Name oder Telefonnummer, können im Anschluss angegeben werden, sind aber optional. Die Benutzererstellung kann mit dem Befehl id überprüft werden.

$ sudo adduser johndoe
Adding user `johndoe' ...
Adding new group `johndoe' (1003) ...
Adding new user `johndoe' (1003) with group `johndoe' ...
Creating home directory `/home/johndoe' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for johndoe
Enter the new value, or press ENTER for the default
Full Name []: John Doe
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] Y
$
$ id johndoe
uid=1003(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$

CentOS/RHEL/Fedora (einschließlich Debian/Ubuntu)

Der Befehl useradd ist nicht nur auf RHEL-basierten Systemen, sondern auch unter Ubuntu/Debian einsetzbar. Die einfachste Form, um einen neuen Benutzer zu erstellen, lautet:

$ sudo useradd <username>

Beispiel:

$ sudo useradd janedoe

useradd unterstützt verschiedene Optionen, die bei der Benutzererstellung angegeben werden können, wie Benutzer-ID (UID), Gruppen-ID (GID), Standard-Shell und Home-Verzeichnis. Hier ein Beispiel:

$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe

Die erstellten Benutzer können mit dem Befehl id überprüft werden:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

Benutzer ändern

Oft müssen vorhandene Benutzerkonten angepasst werden. Dies kann aufgrund von Organisationsänderungen, Benutzeranforderungen oder Systemmigrationen notwendig sein. Die meisten dieser Eigenschaften lassen sich einfach ändern, aber es ist wichtig zu bedenken, welche Auswirkungen dies auf die Benutzerumgebung und den Zugriff auf Dateien haben kann.

Standard-Shell

Die Standard-Shell ist die Kommandozeilenumgebung, die beim Start einer neuen CLI-Sitzung (lokal oder via SSH) verwendet wird. Die Standard-Shell ist auf den meisten modernen Systemen Bash, kann aber je nach Distribution oder Benutzerkonfiguration variieren. Um die Standard-Shell eines Benutzers zu ändern, verwenden Sie:

$ sudo usermod -s <shell> <username>

Beispiel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$

Wie man in der Ausgabe sieht, wurde die Shell von janedoe von /bin/sh zu /bin/bash geändert.

Home-Verzeichnis

Ähnlich wie die Standard-Shell kann das Home-Verzeichnis eines Benutzers an einen anderen Ort verschoben werden:

$ sudo usermod -d <new_directory_path> <username>

Im folgenden Beispiel wird das Home-Verzeichnis von janedoe nach /data/janedoe geändert:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/newhome:/bin/bash
$ sudo usermod -d /data/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$

Vor der Änderung sollte sichergestellt werden, dass das neue Verzeichnis die korrekten Zugriffsrechte und Eigentümer hat, da sonst Probleme beim Anmelden oder Arbeiten entstehen können.

Benutzeridentifikation

Die Benutzer-ID (UID) kann mit folgendem Befehl geändert werden:

$ sudo usermod -u <new_uid> <username>

Beispiel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$

Da die UID bestimmt, wie das Linux-Dateisystem Dateien und Verzeichnisse einem Benutzer zuordnet, müssen nach einer UID-Änderung auch das Home-Verzeichnis und alle anderen Dateien des Benutzers mit der neuen UID versehen werden, um Probleme bei der CLI-Sitzung und dem Dateizugriff zu vermeiden.

Standardgruppe

Die Standardgruppe eines Benutzers ist normalerweise die Gruppe, die bei der Benutzererstellung angelegt wird, sofern keine andere GID angegeben wurde. Die Standardgruppe kann mit dem usermod Befehl angepasst werden:

$ sudo usermod -g <new_gid or group_name> <username>

Beispiel:

$ getent passwd janedoe
janedoe:x:1010:1005::/data/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/data/janedoe:/bin/bash
$

Auch hier ist es wichtig, die neue Gruppen-ID für alle Dateien des Benutzers zu aktualisieren, um die korrekten Rechte zu gewährleisten.

Gruppen hinzufügen/entfernen

Neben der Standardgruppe können Benutzer Mitglied in sekundären Gruppen sein. Diese können mit usermod hinzugefügt oder entfernt werden:

$ sudo usermod -a -G <group_id or group_name> <username>

Beispiel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$

Um einen Benutzer aus einer sekundären Gruppe zu entfernen, kann der Befehl gpasswd verwendet werden:

$ sudo gpasswd -d <username> <groupname>

Beispiel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing user janedoe from group docker
$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$

GECOS-Kommentar

Das GECOS-Feld in /etc/passwd enthält Benutzerinformationen oder Kommentare, die mit usermod geändert werden können:

$ sudo usermod -c <comment> <username>

Beispiel:

$ getent passwd janedoe
janedoe:x:1005:1005::/data/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/data/janedoe:/bin/bash
$

Wenn der Kommentar Leerzeichen enthält, muss er in Anführungszeichen gesetzt werden.

Benutzername

Der Benutzername kann mit dem Parameter -l im usermod-Befehl geändert werden:

$ sudo usermod -l <new_username> <old_username>

Beispiel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ id jane_doe
uid=1005(jane_doe) gid=1005(janedoe) groups=1005(janedoe)
$

Nach der Änderung müssen alle Referenzen zum alten Benutzernamen durch den neuen Namen ersetzt werden.

Benutzer entfernen

Benutzer können mit dem Befehl userdel gelöscht werden:

$ sudo userdel <username>

Beispiel:

$ id janedoe
uid=1005(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$ sudo userdel janedoe
$ id janedoe
id: ‘janedoe’: no such user
$

Um einen Benutzer zusammen mit seinem Home-Verzeichnis und Mail-Spool zu entfernen, muss der Parameter -r verwendet werden.

$ sudo userdel -r <username>

Auf Ubuntu-Systemen kann auch der Befehl deluser verwendet werden:

$ sudo deluser <username>

Um Home-Verzeichnis und Mail-Spool mit zu entfernen, verwenden Sie den Parameter --remove-home.

$ sudo deluser --remove-home <username>

Weitere Informationen zu diesen Befehlen finden Sie auf den jeweiligen Manualseiten mit:

$ man adduser
$ man useradd
$ man usermod
$ man deluser
$ man userdel

Zusammenfassung

Dieser Artikel beleuchtet die verschiedenen Aspekte der Benutzerverwaltung in Linux, einschließlich der Kategorien von Benutzern, dem Hinzufügen, Entfernen und Anpassen von Benutzerkonten. Die beschriebenen Befehle und Optionen decken viele typische Verwaltungsaufgaben ab, die im Alltag eines Systemadministrators anfallen. Obwohl nicht alle möglichen Befehlsvariationen behandelt wurden, vermittelt der Artikel eine solide Grundlage für die Verwaltung von Linux-Benutzern.

Vielleicht interessieren Sie sich auch für: Wie entferne ich Dateien und Verzeichnisse unter Linux?