it-swarm.com.de

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

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?
54
Petr Pudlák

useradd ist eine native Binärdatei, die mit dem System kompiliert wurde. Aber adduser ist ein Perl-Skript, das useradd binary im Backend verwendet.

adduser ist benutzerfreundlicher und interaktiver als sein Backend useradd. Die angebotenen Funktionen unterscheiden sich nicht.

63
Apple II

Der Hauptvorteil von adduser gegenüber useradd liegt im Umgang mit Benutzern auf Systemebene. Mit adduser legt das Benutzerkonto auf Systemebene bei der Erstellung ein Benutzerverzeichnis für den Systembenutzer an, in dem useradd geht nicht automatisch. Wenn Sie den Mann lesen, sind sie im Wesentlichen gleich, außer dass Benutzer auf Systemebene und zugehörige Basisverzeichnisse automatisch sind. adduser erstellt automatisch ein Verzeichnis/home/user für Benutzer auf Systemebene, für die in useradd , sofern nicht durch die Option - m angegeben. Die anderen Lesungen, auf die ich gestoßen bin, besagen allgemein, dass UID und GUID durch akzeptierte konforme Debian-Standards in adduser zugewiesen werden.

10
user517969

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). Und so heißen die Programme user * (useradd, usermod bzw. userdel). Ich nehme an, dass die alternative * Benennungskonvention für Benutzer (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 :)

1
Happyblue