Was macht adduser, was useradd nicht?

71

Zusätzlich zu den weiter verbreiteten useraddenthalten Debian-basierte Systeme auch einen zusätzlichen adduserBefehl, der eine übergeordnete Oberfläche zum Hinzufügen von Benutzern und einigen verwandten Aufgaben bietet. Auf anderen SE-Sites gibt es verschiedene Fragen / Antworten, die die grundlegenden Unterschiede zwischen diesen Befehlen beschreiben, zum Beispiel:

In den meisten Antworten heißt es im Wesentlichen, dass addusereine schönere Benutzeroberfläche für das interaktive Hinzufügen von Benutzern bereitgestellt wird, aber es werden nur wenige Details darüber angegeben, was passiert, wenn ausgeführt adduserwird, was nicht im Vergleich zu useradd. Damit:

  1. Was macht adduserdas useraddnicht?
  2. Welche Befehle muss ich verwenden, um gleichwertige Ergebnisse zu erzielen?
Graeme
quelle

Antworten:

79

Zunächst heben die jeweiligen Manpage-Schnipsel die Unterschiede zwischen den beiden Befehlen hervor und geben einen Hinweis darauf, was gerade vor sich geht. Für adduser:

adduser und addgroup fügen Benutzer und Gruppen gemäß den Befehlszeilenoptionen und Konfigurationsinformationen in /etc/adduser.conf zum System hinzu. Sie sind ein freundlicheres Front-End für Werkzeuge auf niedriger Ebene wie useradd, groupadd und usermod. Standardmäßig wählen sie Debian-Richtlinien-konforme UID- und GID-Werte, erstellen ein Ausgangsverzeichnis mit Skelett-Konfiguration, führen ein benutzerdefiniertes Skript und andere Funktionen aus.

Dann für useradd:

useradd ist ein Hilfsprogramm für das Hinzufügen von Benutzern. Unter Debian sollten Administratoren stattdessen normalerweise adduser (8) verwenden.

Weitere Untersuchungen haben ergeben adduser, dass es sich um ein Perl-Skript handelt, das eine übergeordnete Schnittstelle zu den folgenden Befehlen und damit einige der Funktionen bietet:

  • useradd
  • groupadd
  • passwd - Dient zum Hinzufügen / Ändern von Benutzerpasswörtern.
  • gpasswd - Dient zum Hinzufügen / Ändern von Gruppenkennwörtern.
  • usermod - Dient zum Ändern verschiedener benutzerbezogener Parameter.
  • chfn - Dient zum Hinzufügen / Ändern zusätzlicher Informationen zu einem Benutzer.
  • chage - Dient zum Ändern der Kennwortablaufinformationen.
  • edquota - Dient zum Ändern der Datenträgernutzungsquoten.

Eine grundlegende Ausführung des adduserBefehls lautet wie folgt:

adduser username

Dieser einfache Befehl führt eine Reihe von Dingen aus:

  1. Erstellen Sie den Benutzer mit dem Namen username.
  2. Erstellen Sie das Home-Verzeichnis des Benutzers (Standard ist /home/usernameund kopieren Sie die Dateien von /etc/skeldort.
  3. Erstellen Sie eine Gruppe mit demselben Namen wie der Benutzer und platzieren Sie den Benutzer darin.
  4. Aufforderung zur Eingabe eines Kennworts für den Benutzer.
  5. Fordern Sie weitere Informationen zum Benutzer an.

Das useraddProgramm kann das meiste davon meistens ausführen, tut dies jedoch nicht standardmäßig und benötigt zusätzliche Optionen. Einige der Informationen erfordern mehr Befehle:

useradd -m -U username
passwd username
chfn username

Beachten Sie, dass addusersichergestellt ist, dass erstellte UIDs und GIDs der Debian-Richtlinie entsprechen . Das Erstellen normaler Benutzer mit useraddscheint in Ordnung zu sein, vorausgesetzt, UID_MIN/ UID_MAXin /etc/login.defsentspricht der Debian-Richtlinie. Was jedoch ein Problem ist, ist, dass Debian einen bestimmten Bereich für Systembenutzer-UIDs angibt, der nur anscheinend unterstützt /etc/adduser.confwird. Wenn Sie also einen Systembenutzer mit useraddund ohne Angabe einer UID / GUID im richtigen Bereich hinzufügen, besteht die Gefahr schwerwiegender Probleme.

Eine weitere häufige Verwendung von adduserist die Vereinfachung des Hinzufügens eines Benutzers zu einer Gruppe. Hier der folgende Befehl:

adduser username newgroup

ersetzt einen komplexeren usermodBefehl, bei dem die Gruppen angegeben werden müssen, zu denen der Benutzer bereits gehört (und bei denen der Benutzer Mitglied bleiben soll):

usermod -G all,other,groups,user,is,in,newgroup

Ein Nachteil bei der Verwendung adduserist jedoch, dass Sie jeweils nur eine Gruppe angeben können.

Graeme
quelle
Das ist cool! Ich wusste nicht einmal, dass dies eine Frage war. Nimmt es gehashte Passwörter wie useradd? Das ist übrigens sehr gute Arbeit.
mikeserv
Ich weiß nicht, ob ich der Aussage "Administratoren sollten ..." vollständig zustimme. Persönlich glaube ich, dass der Administrator wahrscheinlich seine eigenen addusernach einer systemweiten Richtlinie zusammenstellen sollte, aber das ist nur ein Sessel bestenfalls Quarterbacking.
mikeserv
@mikeserv, nein, es gibt keine Hash-Passwörter. Es gibt jedoch ein anderes Programm, über das Sie Bescheid wissen sollten - chpasswd- mit dem gehashte Passwörter akzeptiert werden können stdin. Ich werde bis morgen warten, bevor ich diese andere Antwort aktualisiere, obwohl ich denke.
Graeme
netter Post. Für mich ein bisschen zu viele Details. Was ich am meisten vermisse, ist, dass adduseres ursprünglich für Serveradministratoren erstellt wurde, die häufig echte Benutzer wie auf einem E-Mail-Server an der Universität erstellen / ändern / begrenzen mussten. Mit können adduserSie den Prozess automatisieren. Dies hat sich im Laufe der Jahre ein wenig geändert, so dass es heutzutage useraddfür viele Administratoren zu schwierig sein kann und für sie adduserzum Werkzeug der Wahl geworden ist.
Auf meinem Ubuntu 16.04 scheint -U/ --user-groupder Standard zu sein.
Franklin Yu
2

Der Befehl adduser erstellt standardmäßig auch ein Verzeichnis / home / user für Systembenutzer, was mit dem Befehl useradd nicht möglich ist . useradd fügt nur Basisverzeichnisse für normale Benutzer hinzu, nicht für Systembenutzer.

MFPII
quelle
1

Der Systemadministrator kann mit useradd alles tun, was mit adduser möglich ist. Es wurde hier angegeben, dass Sie mit useradd kein / home / user-Verzeichnis für Systembenutzer erstellen können, und das können Sie absolut, indem Sie die in / etc / skel enthaltenen Dateien ändern. / etc / skel enthält die Dateien, die ursprünglich zum Auffüllen des Basisverzeichnisses eines neuen Benutzers verwendet wurden.

niten1
quelle