Die Benutzerverwaltung gehört in jedem Betriebssystem zu den grundlegenden Routineaufgaben eines Systemadministrators
Bei einem Linux-basierten Betriebssystem gehört dazu in der Regel das Anlegen von Benutzerkonten, das Ändern bestehender 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 uns mit den Befehlen und Prozessen zur Durchführung dieser Aufgaben befassen, lassen Sie uns kurz darauf eingehen, wie Benutzerkonten in Linux klassifiziert werden können. Beachten Sie außerdem, dass die angegebenen Befehle in den meisten gängigen Linux-Distributionen funktionieren, sofern sie nicht ausdrücklich angegeben sind
Benutzertypen
Root-Benutzer
Der Root-Benutzer
ist der Administrator des Betriebssystems mit allen Rechten, um Operationen durchzuführen. Normalerweise kann nur root
grundlegende Systemprogramme und Bibliotheken installieren/deinstallieren oder aktualisieren. Er ist das einzige Benutzerkonto mit systemweiten Rechten
Der Root-Benutzer ist auch der mächtigste Benutzer des Systems
Besonderer Benutzer
Dies sind die Benutzer ohne Logins. Sie verfügen nicht über alle Privilegien des Root-Benutzers
. Je nach Konto nehmen sie verschiedene spezielle Rollen ein
Diese werden bei der Installation einer Anwendung automatisch erstellt. bin
, sync
, lp
, mail
, operator
, squid
sind einige Beispiele für spezielle Benutzer
Allgemeine Benutzer
Gewöhnliche Benutzer haben nur in ihrem Arbeitsverzeichnis, in der Regel ihrem Home-Verzeichnis, volle Berechtigungen. Sie haben keine Privilegien, um das System zu verwalten oder die Software zu installieren. Sie können diese Aufgaben nicht ausführen, wenn sie nicht über spezielle Privilegien via sudo
verfügen
Benutzer hinzufügen
Debian/Ubuntu
Auf einem Debian- oder Ubuntu-basierten System gibt es mehrere Möglichkeiten, Benutzer über die CLI hinzuzufügen. Der erste Befehl ist adduser
, der ein Perl-Skript ist und den Befehl useradd
im Backend verwendet, dessen Verwendung wir später sehen werden
Da das Hinzufügen eines Benutzers eine privilegierte Aufgabe ist, müssen Sie sudo
als Präfix und den Benutzernamen
als Argument verwenden. Andere Details können nach Aufforderung angegeben werden. Außer dem Benutzernamen und dem Kennwort sind die übrigen Angaben optional. Wir können überprüfen, ob der Benutzer erstellt wurde, indem wir den Befehl id
verwenden
$ sudo adduser johndoe
Hinzufügen des Benutzers `johndoe' ...
Hinzufügen der neuen Gruppe `johndoe' (1003) ...
Hinzufügen des neuen Benutzers `johndoe' (1003) mit der Gruppe `johndoe' ...
Erstellen des Home-Verzeichnisses `/home/johndoe' ...
Kopieren von Dateien aus `/etc/skel' ...
Neues Passwort:
Neues Passwort wiederholen:
passwd: Passwort erfolgreich aktualisiert
Ändern der Benutzerinformationen für johndoe
Geben Sie den neuen Wert ein oder drücken Sie ENTER für die Standardeinstellung
Full Name []: John Doe
Zimmernummer []:
Telefon auf der Arbeit []:
Telefon zu Hause []:
Sonstiges []:
Sind die Angaben korrekt? [J/n] J
$
$
id johndoe
uid=1003
(johndoe) gid=1003(johndoe) groups=1003(johndoe)
$
CentOS/RHEL/Fedora (einschließlich Debian/Ubuntu)
Der nächste Befehl, useradd
, funktioniert sowohl auf RHEL-basierten Betriebssystemen als auch auf Ubuntu/Debian-Hosts. Die einfachste Syntax (ohne zusätzliche Optionen) zum Anlegen eines neuen Benutzers lautet
$ sudo useradd <Benutzername>
Beispiel
$ sudo useradd janedoe
Der Befehl useradd
unterstützt mehrere Optionen, die bei der Erstellung des Benutzers angegeben werden können. Die häufigsten sind Benutzer-ID (UID), Gruppen-ID (GID), Standardshell und Heimatverzeichnis usw. Ein solches Beispiel finden Sie unten
$ sudo useradd -s /bin/sh -d /data/newhome -c "Jane Doe" -u 1005 janedoe
Sie können den neu angelegten Benutzer mit dem Befehl id
überprüfen
$ id janedoe
uid=1005
(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$
Benutzer ändern
Häufig müssen bestimmte Eigenschaften bestehender Benutzer aufgrund von Organisationsanforderungen, Benutzeranfragen oder Systemmigrationen geändert werden. Die meisten dieser Eigenschaften lassen sich leicht ändern, aber wir müssen sicherstellen, wie sich dies auf die Benutzerumgebung und den Zugriff auf Dateien auswirkt, die dem Benutzer gehören oder auf die er zugreift.
Standard-Gehäuse
Die Standardshell ist die CLI-Shell, die erstellt wird, wenn ein Benutzer eine neue CLI-Sitzung entweder lokal oder über SSH startet. Die meisten modernen Systeme verfügen über eine Standard-Bash
, die jedoch je nach Linux-Distribution oder Umgebung des Benutzers variieren kann. Um die Standardshell eines Benutzers zu ändern, verwenden Sie
$ sudo usermod -s <shell> <Benutzername>
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 den Benutzer janedoe
von /bin/sh
auf /bin/bash
geändert
Home-Verzeichnis
Wie die Standard-Shell kann auch das Home-Verzeichnis eines Benutzers in einem anderen Ort geändert werden
$ sudo usermod -d <neues_Verzeichnis_pfad> <Benutzername>
Im folgenden Beispiel wurde das Heimatverzeichnis 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
$
Vergewissern Sie sich vor dem Wechsel, dass das neue Verzeichnis die richtigen Eigentümer und Berechtigungen hat. Andernfalls kann es zu Problemen bei der Anmeldung oder beim Arbeiten im neuen Heimatverzeichnis kommen.
Benutzer-ID
Sie können die Benutzer-ID eines bestehenden Benutzers ändern.
$ sudo usermod -u <neue_uid> <Benutzername>
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 die Änderung der UID, wie das Linux-Dateisystem den Besitz und die Berechtigung für eine Datei oder ein Verzeichnis zuordnet. Stellen Sie sicher, dass das Home-Verzeichnis des Benutzers und sein Inhalt sowie alle anderen Dateien irgendwo im System, die ursprünglich dem Benutzer gehörten (mit alter UID), auf UID-zugeordnet geändert werden. Andernfalls kann es zu Problemen in der CLI-Sitzung und beim Dateizugriff durch den Benutzer kommen.
Standard-Gruppe
Die Standardgruppe ist in der Regel die Standard-Gruppen-ID des Benutzers, die bei der Erstellung des Benutzers erstellt wird, sofern keine andere GID angegeben wird. Unter Linux können Sie die Standardgruppe eines Benutzers auch mit dem Befehl usermod
ändern. Die Syntax lautet wie folgt
$ sudo usermod -g <neue_gid oder gruppe_name> <Benutzername>
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
$
Vergewissern Sie sich auch hier, dass die neue Gruppen-ID auf das Home-Verzeichnis, den Inhalt und alle anderen Dateien oder Verzeichnisse des Benutzers gesetzt ist, damit die Eigentumsrechte ordnungsgemäß migriert werden.
Hinzufügen/Entfernen von Gruppen
Neben der Standardgruppe kann ein Benutzer in Linux Mitglied in weiteren Gruppen sein. Mit dem Befehl usermod
können wir jederzeit zusätzliche Gruppen hinzufügen oder entfernen, denen ein Benutzer angehört
$ sudo usermod -a -G <Gruppe_id oder Gruppenname> <Benutzername>
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 Befehl gpasswd
wie unten gezeigt
$ sudo gpasswd -d <Benutzername> <Gruppenname>
Beispiel
$ id janedoe
uid=1005
(janedoe) gid=1005(janedoe) groups=1005(janedoe),1001(docker)
$
sudo gpasswd -d janedoe docker
Entfernen von Benutzer janedoe aus Gruppe docker
$
id janedoe
uid=1005
(janedoe) gid=1005(janedoe) groups=1005(janedoe)
$
GECOS Kommentar
Das Feld GECOS in /etc/passwd
enthält Benutzerinformationen oder einen Kommentar. Wir können diese Informationen für einen bestehenden Benutzer wie folgt ändern
$ sudo usermod -c <Kommentar> <Benutzername>
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: Wenn Ihr Kommentar oder Ihre Benutzerangaben Leerzeichen enthalten, schließen Sie das Feld in Anführungszeichen ein, wie im obigen Beispiel
Anmeldename
Der Login-Name des Benutzers kann auch mit dem Befehl usermod
geändert werden, indem Sie die Option -l
verwenden
$ sudo usermod -l <neuer_Benutzername> <alter_Benutzername>
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, die Benutzerreferenzen entsprechend dem neuen Namen zu aktualisieren, wo immer Sie ihn verwenden. Selbst in Befehlen wie id
sollte der neue Benutzername angegeben werden
Benutzer entfernen
Ein Benutzer kann mit dem Befehl userdel
von Linux entfernt werden
$ sudo userdel <Benutzername>
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 seinem Mail-Pool zu entfernen, fügen Sie auch die Option -r
hinzu
$ sudo userdel -r <Benutzername>
Speziell für Ubuntu-basierte Systeme können Sie auch den Befehl deluser
verwenden, um einen Benutzer zu entfernen
$
sudo deluser <Benutzername>
In ähnlicher Weise können Sie auch das Home-Verzeichnis und den Mail-Spool entfernen
$
sudo deluser --remove-home <Benutzername>
Ausführliche Informationen und weitere 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 hat verschiedene Aspekte der Benutzerverwaltung in einem Linux-System aufgezeigt. Dazu gehört eine Erklärung der verschiedenen Benutzerkategorien und wie man sie hinzufügt und entfernt. Er behandelt auch verschiedene Optionen, mit denen Sie die Parameter eines bestehenden Benutzers ändern können. Obwohl es nicht alle Möglichkeiten abdeckt, die von den verschiedenen Befehlen unterstützt werden, deckt es viele gängige Verwaltungsaufgaben ab, die einem Systemadministrator bei seiner täglichen Arbeit begegnen
Das könnte Sie auch interessieren: Wie entfernt man Dateien und Verzeichnisse in Linux?