In Linux- und Unix-ähnlichen Betriebssystemen ist der häufigste Befehl zum Erstellen von Benutzern „useradd“ oder „adduser“. Als Systemadministrator müssen Sie häufig Benutzer hinzufügen, Benutzer entfernen, Gruppen erstellen und Benutzer zuweisen.
Es gibt keinen Unterschied zwischen den beiden oben genannten Befehlen in Bezug auf die Funktionen. Der Befehl adduser ist benutzerfreundlicher und wird von einigen Debian/Ubuntu-Administratoren gerne verwendet. Useradd ist mit dem Linux-System binär kompiliert und arbeitet als Backend für adduser.
In diesem Tutorial lernen wir, wie man Benutzer in Linux vom Terminal aus mit dem Befehl useradd erstellt.
Useradd-Befehl und -Syntax
Die folgende Zeile zeigt die Syntax für den useradd-Befehl:
useradd [OPTIONS] username
Ein Benutzer kann einfach durch Eingabe des Benutzernamens gefolgt von dem Befehl hinzugefügt werden. Sie sollten useradd
ausführen Befehl entweder mit root- oder sudo-Benutzerrechten.
Lassen Sie uns mehr über useradd
erfahren Befehl und seine Optionen.
1) So erstellen Sie einen neuen Benutzer unter Linux
Wie oben erwähnt, verwenden wir zum Erstellen eines neuen Benutzers den Befehl useradd.
Der folgende Befehl erstellt einen neuen Benutzer namens 'bill' und der zweite Befehl setzt dem Benutzer ('bill') ein neues Passwort.
$ sudo useradd bill
$ sudo passwd bill
Dadurch wird der Benutzer mit dem Home-Verzeichnis als /home/bill
erstellt und kopiert Dateien aus dem Verzeichnis '/etc/skel' in das Home-Verzeichnis des Benutzers.
$ ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar 9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar 9 06:49 ..
-rw-r--r--. 1 bill bill 18 Nov 8 16:21 .bash_logout
-rw-r--r--. 1 bill bill 141 Nov 8 16:21 .bash_profile
-rw-r--r--. 1 bill bill 312 Nov 8 16:21 .bashrc
Dieser Befehl fügt einen Eintrag zu den Dateien /etc/passwd, /etc/shadow, /etc/group und /etc/gshadow hinzu.
Hinweis:Auf Ubuntu- und Debian-bezogenen Distributionen erstellt useradd kein Standard-Home-Verzeichnis, es sei denn, Sie müssen es mit Optionen angeben. Stattdessen empfiehlt Debian die Verwendung des Befehls adduser.
2) Erstellen Sie einen Benutzer mit einem bestimmten Home-Verzeichnis
Um einen Benutzer mit einem bestimmten Home-Verzeichnis als Wert für die Benutzeranmeldung anzulegen, verwenden Sie -d
Möglichkeit. Stellen Sie sicher, dass Sie das Basis-Home-Verzeichnis mit dem Befehl mkdir erstellen, bevor Sie den Befehl ausführen.
Lassen Sie uns das Basis-Home-Verzeichnis mit dem Namen „devops“ erstellen:
$ sudo mkdir /devops
Nun erstellt der folgende Befehl den Benutzer ‚bill‘ und setzt sein Home-Verzeichnis auf ‚/devops/billhome‘.
$ sudo useradd -d /devops/billhome bill
Output
$ sudo useradd -d /devops/billhome bill
$ ls -al /devops/billhome
total 12
drwxr-xr-x 2 bill bill 100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r-- 1 bill bill 220 Apr 4 2018 .bash_logout
-rw-r--r-- 1 bill bill 3771 Apr 4 2018 .bashrc
-rw-r--r-- 1 bill bill 807 Apr 4 2018 .profile
Sie können eine Kombination aus -m (ein Home-Verzeichnis erstellen, falls es nicht existiert) und -d (gegebenen Pfad als Login-Verzeichnisnamen des Benutzers festlegen) verwenden, um einen Benutzer zu erstellen.
$ sudo useradd -m -d /home/bobhome bob
3) Erstellen eines Benutzers mit spezifischer Benutzer-ID
Wenn Sie einen Benutzer erstellen, weist er standardmäßig die nächste verfügbare UID zu, die in der Datei login.defs definiert ist. Aber mit -u
Option können Sie einen Benutzer mit einer bestimmten UID erstellen.
Im folgenden Beispiel wird eine Benutzerrechnung mit einer bestimmten UID (3210) erstellt.
$ useradd -u 3210 bill
$ grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash
Die UID ist in der Datei „/etc/passwd“ zu sehen, wie in der obigen Ausgabe gezeigt.
4) Benutzer mit spezifischer Login-Shell erstellen
Manchmal müssen wir einen Benutzer mit einer bestimmten Login-Shell (wie ksh, tcsh, zsh usw.) oder ohne Shell-Login ('/sbin/nologin') erstellen.
Mit -s
können wir die dem Benutzerkonto zugeordnete Login-Shell angeben Option wie unten gezeigt:
$ useradd -s /bin/tcsh bill
Sie können die Login-Shell überprüfen, indem Sie den Benutzernamen aus der /etc/passwd-Datei abrufen:
$ grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh
5) Spezifisches Basis-Home-Verzeichnis erstellen
Standardmäßig befinden sich die Home-Verzeichnisse der Benutzer im Verzeichnis „/home“ (Variable in /etc/default/useradd ). Durch die Verwendung von -b
Option können Sie ein anderes Basis-Home-Verzeichnis für den neuen Benutzer haben.
Der folgende Befehl legt das Verzeichnis „/mnt“ als Basisverzeichnis fest und erstellt ein Home-Verzeichnis des Benutzers „bill“ als „/mnt/bill“.
$ useradd -b /mnt bill
$ grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash
6) Erstellen Sie einen Benutzer mit einem Ablaufdatum
Beim Anlegen eines neuen Benutzers können Sie mit -e
ein Ablaufdatum für das Benutzerkonto festlegen Option.
Im folgenden Beispiel wird das Ablaufdatum (Format des Datums ist JJJJ-MM-TT ) für den Benutzer „Rechnung“ festgelegt.
$ sudo useradd -e 2013-06-23 bill
Dies kann überprüft werden, indem das letzte Feld der Datei „/etc/shadow“ überprüft wird. Das letzte Feld (15879) zeigt das Ablaufdatum als Anzahl der Tage seit der Deaktivierung des Kontos am 1. Januar 1970.
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:
Eine einfachere Möglichkeit, das Ablaufdatum des Benutzers zu überprüfen, ist die Verwendung des Befehls „chage“, wie unten gezeigt:
$ sudo chage -l bill
Last password change : Feb 10, 2013
Password expires : never
Password inactive : never
Account expires : Jun 23, 2013
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
Das -f
Die Option gibt die Anzahl der Tage nach Ablauf eines Kennworts an, bis das Konto dauerhaft deaktiviert wird. Der Wert von 0
deaktiviert das Konto, sobald das Passwort abgelaufen ist.
$ sudo useradd -f 20 bill
Wie in der Shadow-Datei gezeigt, ist die Anzahl der Tage auf 20 gesetzt (in der vorletzten Spalte).
$ sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::
7) Erstellen eines Benutzers und Hinzufügen zu mehreren Gruppen
Jeder Benutzer in Linux sollte in einer primären Gruppe und null oder mehr sekundären Gruppen (zusätzliche Gruppe) bleiben.
Die primäre Gruppe eines Benutzers, zu der er gehört, kann mit der Option -g festgelegt werden. Die mit dieser Option versehene Gruppe muss bereits existieren.
$ sudo useradd -g xero bill
$ sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Die Gruppe kann mit dem Befehl id überprüft werden. Das -G
Option wird verwendet, um einen Benutzer zu zusätzlichen Gruppen hinzuzufügen.
$ sudo useradd -G g1,g2,g3 bill
$ sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh
Sehen wir uns an, wie Sie einen Benutzer erstellen und mehreren Gruppen zuweisen. Der Befehl erstellt einen neuen Benutzer namens „bill“ mit der primären Gruppe „teams“ und den sekundären Gruppen „admin“ und „apache“.
$ sudo useradd -g teams -G admin,apache bill
8) Doppelte Benutzer-ID erstellen
Das -o
Option ermöglicht das Erstellen eines Benutzerkontos mit einer doppelten (nicht eindeutigen) Benutzer-ID. Sie müssen eine UID-Nummer mit -u
angeben Option.
Überprüfen Sie das folgende Beispiel:
$ sudo useradd -o -u 503 bill
Hier können wir sehen, dass es zwei Konten mit der ID 503 gibt.
$ sudo grep 503 /etc/passwd
jenny:x:503:503::/home/jenny:/bin/bash
bill:x:503:505::/home/bill:/bin/bash
9) Erstellen Sie einen Benutzer als Systemkonto
Normalerweise sind die UIDs bis 500 oder 1000 für Systemaccounts reserviert und werden nicht an normale Benutzer vergeben. Mit -r
Option wird dem erstellten Benutzer ein Konto mit einer ID im Bereich der Systembenutzer zugewiesen.
$ sudo useradd -r bill
$ sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash
Hier wird das Home-Verzeichnis für den Benutzer nicht erstellt. Es muss manuell erstellt oder mit -m
versehen werden Option.
10) Erstellen Sie einen Benutzer ohne Home-Verzeichnis
Wenn Sie kein eigenes Home-Verzeichnis erstellen möchten, -M
Option angegeben werden.
$ sudo useradd -M bill
$ sudo grep bill /etc/passwd
bill:x:504:505::/home/bill:/bin/bash
$ ls /home/bill
ls: /home/bill: No such file or directory
In der Ausgabe des Befehls ls ist ersichtlich, dass das Home-Verzeichnis für bill user nicht existiert.
11) Erstellen Sie einen Benutzer mit Passwort
Das Passwort des Benutzers ist standardmäßig deaktiviert. Sie können das Passwort manuell mit dem Befehl passwd festlegen. Aber wenn Sie das Passwort zum Zeitpunkt der Benutzererstellung angeben möchten, können Sie -p
verwenden Option.
Aber das hier angegebene Passwort muss verschlüsselt sein, wie es von crypt(3) zurückgegeben wird.
$ sudo useradd -p '$1$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill
12) Ändern der Standardoptionen
Wenn ein Benutzer auf einem System hinzugefügt wird, werden einige Werte als Standard übernommen, zum Beispiel Shell, Basisverzeichnis usw. Das Basisverzeichnis ist das Verzeichnis, in dem sich die Home-Verzeichnisse der Benutzer befinden. Auf den meisten Linux-Systemen befinden sich die Home-Verzeichnisse der Benutzer im /home-Verzeichnis.
Beispielsweise ist das Home-Verzeichnis des Benutzers Tom standardmäßig „/home/tom“. /home wird also sein Basisverzeichnis sein. Diese Standardoptionen sind in der Datei „/etc/defaults/useradd“ definiert. Diese Voreinstellungen können mit -D
eingesehen werden Option zum useradd-Befehl:
$ sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no
Der obige Befehl kann auch von normalen Benutzern (Nicht-Root-Benutzern) ausgeführt werden. Das -D
Option wird nicht nur zum Anzeigen von Standardeinstellungen verwendet, sondern auch zum Ändern der Standardeinstellungen.
13) Erstellen Sie einen Benutzer mit benutzerdefiniertem Kommentar
Wir können beim Erstellen eines Benutzers den vollständigen Namen oder eine kurze Beschreibung des Benutzers (einen Kommentar) angeben. Sie müssen -c
verwenden Option zum Hinzufügen benutzerdefinierter Kommentare.
Lassen Sie mich Ihnen ein Beispiel zeigen:
$ sudo useradd -c "Bill Drape" bill
Dieser Kommentar ist im Eintrag des Benutzers in der Datei „/etc/passwd“ zu sehen.
$ sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash
Schlussfolgerung
In diesem Tutorial haben wir gelernt, wie man Benutzer in Linux und verschiedene Optionen des Befehls useradd erstellt. Ich hoffe, Sie hatten Spaß beim Lesen und hinterlassen Sie bitte Ihre Vorschläge im Kommentarbereich unten.