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

Die Benutzerverwaltung in jedem Betriebssystem gehört zu den grundlegenden Routineaufgaben eines Systemadministrators.

Für ein Linux-basiertes Betriebssystem umfasst dies normalerweise das Erstellen von Benutzerkonten, das Ändern vorhandener Konten, z. B. das Ändern des Home-Verzeichnisses, der Standard-Shell, das Sperren / Entsperren eines oder mehrerer Konten und das Entfernen von Benutzerkonten.

Bevor wir die Befehle und Prozesse untersuchen, um diese Aufgaben auszuführen, lassen Sie uns kurz darauf eingehen, wie Benutzerkonten in Linux klassifiziert werden können. Beachten Sie auch, dass die angegebenen Befehle in den meisten gängigen Linux-Distributionen funktionieren, sofern nicht ausdrücklich angegeben.

Benutzertypen

Root-Benutzer

Der Root-Benutzer ist der Administrator des Betriebssystems mit allen Berechtigungen zum Ausführen von Vorgängen. Normalerweise kann nur root grundlegende Systemprogramme und Bibliotheken installieren/deinstallieren oder aktualisieren. Es ist das einzige Benutzerkonto mit systemweiten Berechtigungen.

Der Root-Benutzer ist also der mächtigste Benutzer des Systems.

Spezieller Benutzer

Dies sind die Benutzer ohne Logins. Sie haben nicht alle Rechte des Root-Benutzers. Je nach Konto nehmen sie unterschiedliche spezialisierte Rollen ein.

Diese werden bei jeder Anwendungsinstallation automatisch erstellt. bin, sync, lp, mail, operator, squid sind einige der Beispiele für spezielle Benutzer.

Gemeinsame Benutzer

Normale Benutzer haben nur in ihrem Arbeitsverzeichnis, normalerweise ihrem Home-Verzeichnis, volle Rechte. Sie sind nicht berechtigt, das System zu verwalten oder die Software zu installieren. Sie können diese Aufgaben nicht ausführen, ohne spezielle Berechtigungen über sudo zu haben.

Benutzer hinzufügen

Debian/Ubuntu

Auf einem Debian- oder Ubuntu-basierten System gibt es einige Optionen zum Hinzufügen von Benutzern über die CLI. Der erste Befehl ist adduser, ein Perl-Skript, das den useradd-Befehl im Backend verwendet, dessen Verwendung wir später sehen werden.

Da das Hinzufügen eines Benutzers eine privilegierte Aufgabe ist, müssten Sie sudo als Präfix und Benutzername als Argument verwenden. Weitere Details können nach Aufforderung angegeben werden. Mit Ausnahme von Benutzername und Passwort sind die restlichen Angaben optional. Wir können überprüfen, ob der Benutzer erstellt wurde, indem wir den Befehl id verwenden.

$ 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 nächste Befehl, useradd, funktioniert über RHEL-basierte Betriebssystemverteilungen hinweg und funktioniert gleichermaßen gut auf Ubuntu/Debian-Hosts. Die einfachste Syntax (ohne zusätzliche Optionen) zum Erstellen eines neuen Benutzers lautet:

$ sudo useradd <username>

Beispiel:

$ sudo useradd janedoe

Der Befehl useradd unterstützt mehrere Optionen, die beim Erstellen des Benutzers angegeben werden können, am häufigsten sind Benutzer-ID (UID), Gruppen-ID (GID), Standard-Shell und Home-Verzeichnis usw. Ein solches Beispiel ist unten angegeben:

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

Sie können den neu erstellten Benutzer mit dem Befehl id überprüfen:

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

Benutzer ändern

Oft müssen einige Eigenschaften vorhandener Benutzer basierend auf Organisationsanforderungen, Benutzeranforderungen oder Systemmigrationen geändert werden. Die meisten dieser Eigenschaften sind einfach zu ändern, obwohl wir sicherstellen müssen, wie sie sich auf die Benutzerumgebung und den Zugriff auf Dateien auswirken, die dem Benutzer gehören oder auf die er zugreift.

  So verwenden Sie den yes-Befehl unter Linux

Standard-Shell

Die Standard-Shell ist die CLI-Shell, die erstellt wird, wenn ein Benutzer eine neue CLI-Sitzung entweder lokal oder über SSH startet. Die meisten modernen Systeme haben eine Standardbenutzer-Bash, die jedoch je nach Linux-Distribution oder Benutzerumgebung variieren kann. 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 Sie in der obigen Ausgabe sehen können, wurde die Shell für Benutzer janedoe von /bin/sh in /bin/bash geändert.

Home-Verzeichnis

Wie die Standard-Shell kann das Home-Verzeichnis eines Benutzers an einen anderen Ort geändert werden, indem Sie Folgendes verwenden:

$ sudo usermod -d <new_directory_path> <username>

Im folgenden Beispiel wurde das Benutzer-Home-Verzeichnis des Benutzers janedoe in /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
$

Stellen Sie vor dem Wechsel sicher, dass das neue Verzeichnis über die richtigen Eigentümer und Berechtigungen verfügt. Andernfalls kann es beim Anmelden oder Arbeiten im neuen Home-Verzeichnis zu Problemen kommen.

  Die 8 besten Online-Tech-Support-Ressourcen für Linux-Benutzer

Benutzeridentifikation

Sie können die Benutzer-ID eines bestehenden Benutzers ändern mit:

$ 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
$

Auch hier ändert das Ändern der UID, wie das Linux-Dateisystem Eigentum und Berechtigungen einer Datei oder einem Verzeichnis zuordnet. Stellen Sie sicher, dass das Home-Verzeichnis des Benutzers und seine Inhalte sowie alle anderen Dateien irgendwo im System, die ursprünglich dem Benutzer gehörten (mit alter UID), in UID-zugeordnet geändert werden. Andernfalls kann es zu Problemen in der CLI-Sitzung und beim Dateizugriff durch den Benutzer kommen.

Standardgruppe

Die Standardgruppe ist normalerweise die Standardgruppen-ID des Benutzers, die während der Benutzererstellung erstellt wird, sofern keine andere GID angegeben ist. Linux ermöglicht es Ihnen, die Standardgruppe eines Benutzers auch mit dem Befehl usermod zu ändern. Hier ist die zu verwendende Syntax:

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

Hier ist ein 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
$

Stellen Sie erneut sicher, dass die neue Gruppen-ID auf das Home-Verzeichnis, den Inhalt und alle anderen Dateien oder Verzeichnisse des Benutzers festgelegt ist, um seine Eigentumsberechtigungen ordnungsgemäß zu migrieren.

Gruppen hinzufügen/entfernen

Neben der Standardgruppe kann ein Benutzer unter Linux Teil sekundärer Gruppen sein. Wir können jederzeit zusätzliche Gruppen hinzufügen oder entfernen, denen ein Benutzer angehört, indem wir den Befehl usermod verwenden.

$ 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 der sekundären Gruppen zu entfernen, verwenden Sie den gpasswd-Befehl wie unten gezeigt:

$ 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. Wir können diese Informationen für einen bestehenden Benutzer wie folgt ändern:

$ 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
$

Bitte beachten Sie, dass, wenn Ihr Kommentar oder Ihre Benutzerdetails Leerzeichen enthalten, dieses Feld wie im obigen Beispiel in Anführungszeichen gesetzt wird.

  Wie man Tether mit Gnirehtet von Linux auf Android umkehrt

Benutzername

Der Anmeldename des Benutzers kann auch mit dem Befehl usermod geändert werden, indem das Flag -l verwendet wird:

$ 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)
$

Denken Sie daran, Benutzerreferenzen gemäß dem neuen Namen zu aktualisieren, wo immer er verwendet wird. Auch in Befehlen wie id sollte der neue Benutzername angegeben werden.

Benutzer entfernen

Ein Benutzer kann mit dem Befehl userdel aus Linux entfernt 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, fügen Sie auch das Flag -r hinzu.

$ sudo userdel -r <username>

Speziell für Ubuntu-basierte Systeme können Sie auch den Befehl „deluser“ verwenden, um einen Benutzer zu entfernen:

$ sudo deluser <username>

Um auch das Home-Verzeichnis und den Mail-Spool zu entfernen, verwenden Sie auf ähnliche Weise:

$ sudo deluser --remove-home <username>

Ausführliche Informationen und andere unterstützte Optionen finden Sie auf der Hauptseite der verschiedenen Befehle mit:

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

Fazit

Dieser Artikel zeigte verschiedene Aspekte der Benutzerverwaltung in einem Linux-System. Dazu gehört eine Erläuterung der verschiedenen Kategorien von Benutzern und wie sie hinzugefügt und entfernt werden. Es behandelt auch verschiedene Optionen, die helfen, die Parameter eines bestehenden Benutzers zu ändern. Obwohl es nicht alle Möglichkeiten abdeckt, die von verschiedenen Befehlen unterstützt werden, deckt es viele allgemeine Verwaltungsaufgaben ab, denen ein Systemadministrator bei der täglichen Arbeit begegnen wird.

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