Was ist der Unterschied zwischen "adduser" und "useradd"?

61

Ich frage mich: Warum gibt es diese beiden Befehle unter Debian Linux mit sehr ähnlichen Namen und Funktionen? Das war für mich immer verwirrend.

  • Ist einer von ihnen einem anderen überlegen?
  • Warum verschmelzen sie nicht zu einem?
  • Gibt es einen signifikanten Unterschied zwischen ihnen?
  • Welches soll ich verwenden? Oder hängt es von einem Anwendungsfall ab?
Petr Pudlák
quelle
1
Beachten Sie, dass dies useraddauf allen Unix-ähnlichen Plattformen verfügbar ist. adduserist nur für Debian und seine Derivate.
Franklin Yu

Antworten:

68

useraddist native Binärdatei, die mit dem System kompiliert wurde. Aber es adduserist ein Perl-Skript, das useraddim Back-End Binärdateien verwendet .

adduserist benutzerfreundlicher und interaktiver als das Back-End useradd. Die angebotenen Funktionen unterscheiden sich nicht.

Apple II
quelle
1
adduser ist nicht in allen Distributionen verfügbar (z. B. suse-basiert), und in einigen anderen ist es nur ein Symlink zu useradd (redhat-basiert).
Ychaouche
12

Der Hauptvorteil von adduser gegenüber useradd liegt im Umgang mit Benutzern auf Systemebene. Mit adduser legt das Benutzerkonto auf Systemebene bei seiner Erstellung ein Benutzerverzeichnis für den Systembenutzer an, in dem useradd nicht automatisch eingerichtet wird. Wenn Sie den Mann lesen, sind sie im Wesentlichen gleich, mit Ausnahme der Benutzer auf Systemebene und der zugehörigen Basisverzeichnisse. adduser erstellt automatisch ein Verzeichnis / home / user für Benutzer auf Systemebene , für die useradd keine Bestimmung enthält , es sei denn, die Option -m gibt dies an . Die anderen Lesungen, auf die ich gestoßen bin, besagen allgemein, dass UID und GUID von akzeptierten konformen Debian-Standards in adduser zugewiesen werden.

user517969
quelle
1
adduser hat die Option --no-create-home.
Ychaouche
1

In einigen von mir überprüften Redhat-Instanzen (4.9 von 2011 und 6.9 von 2017) ist adduser einfach ein Alias ​​für useradd, kein Perl-Skript. Hier ist es in Redhat 6.9:

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

Ich erinnere mich, dass useradd das 'richtige' Programm ist: Das Hinzufügen eines Benutzers ist nur eine Operation im CRUD-Spektrum. Sie müssen auch die Operationen 'Ändern' und 'Löschen' ausführen ('Lesen' wird vermutlich durch das Anzeigen von / etc / passwd abgedeckt). Die Programme heißen also user * (useradd, usermod bzw. userdel). Ich nehme an, dass die alternative * Benennungskonvention (adduser, moduser und deluser - diese existieren nicht) auch funktionieren könnte. Aber es wäre etwas umständlicher (aus einem Grund, den ich im Moment nicht klar ausdrücken kann :)

Happyblue
quelle
kann moduserauf Debian nicht finden , ist aber deluserdefinitiv da.
Ychaouche
0

In raspian (ich müsste nach anderen Betriebssystemen suchen) startet 'adduser USER' einen Dialog (TUI), 'useradd USER' NICHT.

Anscheinend wird bei Verwendung von adduser nach dem Aufrufen des Dialogfelds der vollständige Befehl 'useradd' bereits ausgeführt. Auch wenn Sie STRG-C drücken, ist Ihr Benutzer dort.

Wie in den neuen Systemen erstellen sie "persönliche" Gruppen. Um den neu erstellten Benutzer zu entfernen, müssten Sie:

  • vi / etc / passwd
  • vi / etc / group
  • rm -rf / home / USER

Ich gehe davon aus, dass adduser useradd "verwendet", der Rest sind Metadaten über den Benutzer. Also technisch keine Änderungen an "Skel", "Dateimasken" o.ä.

Da useradd keine TUI aufruft, ist es möglicherweise für die Skripterstellung nützlicher.

Um ehrlich zu sein, habe ich es nur auf Rasbian getestet, weil ich deshalb auf die Frage getreten bin.

Ich kann mir vorstellen, dass andere Betriebssysteme möglicherweise eine andere Version von adduser implementieren.

Mariotti
quelle