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?