GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Useradd vs. Adduser:Was ist der Unterschied?

Wenn es darum geht, einen neuen Benutzer in Linux zu erstellen, haben Sie die Möglichkeit, entweder den Befehl adduser oder den Befehl useradd zu verwenden.

Was ist also der Unterschied zwischen den Befehlen useradd und adduser? Ist einer von ihnen besser als der andere? Welche sollten Sie verwenden? useradd oder adduser?

Unterschied zwischen adduser- und useradd-Befehlen

Useradd ist ein integrierter Linux-Befehl, der auf jedem Linux-System zu finden ist. Das Erstellen neuer Benutzer mit dieser niedrigen Ebene ist jedoch eine mühsame Aufgabe, da standardmäßig kein Home-Verzeichnis und kein Benutzerkennwort erstellt werden.

Adduser ist kein Standard-Linux-Befehl. Es ist im Wesentlichen ein Perl-Skript, das den useradd-Befehl im Hintergrund verwendet. Dieses High-Level-Dienstprogramm ist effizienter bei der ordnungsgemäßen Erstellung neuer Benutzer unter Linux. Es gibt Ihnen die Möglichkeit, ein Home-Verzeichnis zu erstellen, ein Passwort zusammen mit einigen weiteren Parametern festzulegen.

Werfen wir einen Blick auf diese beiden Befehle und wie sie Benutzer in Linux erstellen.

Useradd-Befehl

Schauen wir uns zunächst das Standardverhalten des Befehls useradd an. Haben Sie jemals den folgenden Befehl ausgeführt?

useradd new_user

Ich habe noch keine Distribution gesehen, bei der dieser Befehl ein vollständiges Benutzerkonto erstellt hat. Auch nach dem Festlegen eines Passworts für den neuen Benutzer müssten Sie zusätzliche Optionen damit verwenden.

Beispielsweise hat der obige Befehl auf meinem System den folgenden Eintrag in der Datei /etc/passwd hinzugefügt.

Wenn Sie den Artikel zum Auflisten von Benutzern unter Linux gelesen haben, sind Sie wahrscheinlich bereits mit dem Inhalt der Datei /etc/passwd vertraut. Es sieht zunächst gut aus, aber wenn Sie anfangen zu graben, werden Sie schnell feststellen, dass einige Dinge nicht ganz stimmen.

Erstens enthält das zweite Feld „x“. Das bedeutet, dass sich der Platzhalter für Passwortinformationen in /etc/shadow befindet. Ich habe aber kein Passwort gesetzt. Dies bedeutet, dass sich der Testbenutzer nicht anmelden kann.

Zweitens das Home-Verzeichnis. Die Sache ist, dass /home/test nicht existiert. Auch nachdem Sie ein Passwort festgelegt haben, tritt ein Fehler auf, wenn sich der Benutzer anmeldet. Je nach anderer Konfiguration kann Ihr Linux-System verhindern, dass sich ein Benutzer ohne gültiges Home-Verzeichnis anmeldet. Höchstwahrscheinlich Benutzer test zumindest im Textmodus auf Ihrem System anmelden dürfen. Aber Benutzer test darf sein Home-Verzeichnis nicht erstellen.

Drittens ist die Standard-Login-Shell sh, nicht bash. Ich verwende sh nicht als Shell. Sie wahrscheinlich auch nicht, weil bash die Standard-Shell auf den meisten Linux-Distributionen ist.

Während das Verhalten von useradd durch Bearbeiten von /etc/login.defs leicht modifiziert werden kann, besteht wenig bis gar keine Chance, dass der obige Befehl ein vollständiges Benutzerkonto erstellt. Useradd ist ein Low-Level-Dienstprogramm. Dennoch kann es nützlich sein, die Einstellungen in /etc/login.defs durchzusehen.

Adduser-Befehl

Der Befehl Adduser ist auf einigen Linux-Distributionen nicht verfügbar. Bei anderen ist es ein weicher Link zu useradd. Bei einigen anderen handelt es sich um ein Perl-Skript.

Adduser ist ein interaktives High-Level-Dienstprogramm. Es verwendet das Low-Level-Dienstprogramm useradd als Backend. Einstellungen in /etc/login.defs werden verwendet, während der Befehl adduser verwendet wird. Auf Debian-basierten Distributionen empfiehlt sogar die Manpage die Verwendung über den useradd-Befehl.

Wenn Sie adduser nur mit einem Benutzernamen aufrufen, werden Sie durch eine Reihe von Fragen geführt.

Nach Beantwortung einiger Fragen wird ein vollständiges Benutzerkonto mit Home-Verzeichnis erstellt. Der neue Benutzer kann sich über Ihren Anmeldemanager oder im Textmodus anmelden.

Um mit dem Low-Level-Dienstprogramm useradd fast dasselbe Ergebnis zu erzielen, würde der Befehl etwa so aussehen:

sudo useradd -d /home/test -m -s/bin/bash \ -c FullName,Phone,OtherInfo test && passwd test

Das -c Optionen können ohne Probleme entfernt werden, die folgende kommagetrennte Liste sind Kommentare, die zu /etc/passwd hinzugefügt wurden. Aber selbst dann erspart Ihnen adduser zwei zusätzliche Befehle.

Der Befehl Adduser hat eine Liste von Optionen, die Ihnen zur Verfügung stehen. Hier ist eine kurze Liste, die meiner Meinung nach am nützlichsten ist. Weitere Einzelheiten finden Sie in der Hilfe oder Manpage.

  • system:Fügen Sie einen Systembenutzer hinzu. Standardmäßig werden Systembenutzer in die Gruppe nogroup platziert. Um einen Systembenutzer zu einer bestehenden Gruppe hinzuzufügen, geben Sie die Option –gid oder –ingroup an.
  • home DIR:Verwenden Sie DIR als Home-Verzeichnis anstelle des Standardverzeichnisses. Das Verzeichnis wird bei Bedarf erstellt und Skelettdateien werden kopiert.
  • shell SHELL:Verwenden Sie SHELL anstelle der Standardeinstellung.
  • ingroup GROUP:Legen Sie die primäre Gruppe des Benutzers auf GROUP fest
  • add_extra_groups:Fügt einen neuen Benutzer zu einer zusätzlichen Gruppe hinzu, die in der Konfigurationsdatei definiert ist.

In der Konfigurationsdatei von Adduser können Sie die Standardwerte festlegen, die beim Erstellen des Kontos verwendet werden sollen. Die Datei ist gut dokumentiert und ermöglicht das Festlegen von Standardwerten wie:

  • Standard-Shell
  • Home-Verzeichnis
  • Zusätzliche Gruppen
  • Zusätzliche Gruppen hinzufügen

Schlussfolgerung

Nach meiner persönlichen Erfahrung als Systemadministrator ist adduser viel besser darin, neue Benutzer unter Linux anzulegen. Ich bevorzuge an jedem Tag adduser gegenüber useradd und empfehle dasselbe.

Was ist mit Ihnen? Welchen bevorzugen Sie zwischen adduser und useradd?


Linux
  1. Linux vs. Unix:Was ist der Unterschied?

  2. Linux – Die Verwendung der Option -o im Useradd-Befehl?

  3. Was ist der Unterschied zwischen &> und >&in bash?

  4. Was ist der Unterschied zwischen adduser und useradd?

  5. Wozu dient die Option -o im Befehl useradd?

Was ist der Unterschied zwischen apt und dem Befehl apt-get?

Der Shutdown-Befehl?

iptables vs. nftables:Was ist der Unterschied?

Was ist der Unterschied zwischen Kill- und Killall-Befehlen?

Was ist der Kill-Befehl in Linux?

useradd vs. adduser:Was sind die Unterschiede?