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.
Inhaltsverzeichnis
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.
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.
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.
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?