
Ich frage mich: Warum gibt es diese beiden Befehle unter Debian Linux mit sehr ähnlichen Namen und Funktionen? Das hat mich schon immer verwirrt.
- Ist einer von ihnen einem anderen überlegen?
- Warum werden sie nicht zu einem zusammengeführt?
- Gibt es einen signifikanten Unterschied zwischen ihnen?
- Welches sollte ich verwenden? Oder hängt es vom Anwendungsfall ab?
Antwort1
useradd
ist eine native Binärdatei, die mit dem System kompiliert wurde. Es handelt sich jedoch um ein Perl-Skript, das im Backend Binärdateien adduser
verwendet .useradd
adduser
ist benutzerfreundlicher und interaktiver als das Backend useradd
. Es gibt keinen Unterschied in den bereitgestellten Funktionen.
Antwort2
Der Hauptvorteil fürBenutzer hinzufügenüberBenutzer hinzufügenbeschäftigt sich mit Benutzern auf Systemebene. MitBenutzer hinzufügenDas Benutzerkonto auf Systemebene legt bei der Erstellung ein Benutzerverzeichnis für den Systembenutzer im Home-Bereich an, in demBenutzer hinzufügennicht automatisch. Wenn Sie den Leitfaden lesen, sind sie im Wesentlichen gleich, außer dass Benutzer auf Systemebene und zugehörige Home-Verzeichnisse automatisch sind.Benutzer hinzufügenerstellt automatisch ein /home/user-Verzeichnis für Benutzer auf Systemebene, wenn keine entsprechende Vorgabe vorhanden ist inBenutzer hinzufügen, sofern nicht anders angegeben durch-MOption. Die anderen Lesarten, die ich gefunden habe, geben allgemein an, dass UID und GUID durch akzeptierte konforme Debian-Standards inBenutzer hinzufügen.
Antwort3
In einigen von mir überprüften Redhat-Instanzen (4.9 von 2011 und 6.9 von 2017) ist adduser lediglich ein Alias für useradd und 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
Soweit ich mich erinnere, ist useradd das „richtige“ Programm: Das Hinzufügen eines Benutzers ist nur eine Operation im CRUD-Spektrum. Sie benötigen auch die Operationen „ändern“ und „löschen“ (das Lesen wird vermutlich durch das Anzeigen von /etc/passwd abgedeckt). Und so heißen die ProgrammeBenutzer*(useradd, usermod und userdel). Ich nehme an, die Alternative*BenutzerNamenskonvention (adduser, moduser und deluser – diese gibt es nicht) könnte auch funktionieren. Aber es wäre etwas umständlicher (aus einem Grund, den ich im Moment nicht klar ausdrücken kann :)
Antwort4
Innerhalb von Raspian (bei anderen Betriebssystemen müsste ich nachsehen) startet „adduser USER“ einen Dialog (TUI), während dies bei „useradd USER“ NICHT der Fall ist.
Wenn Sie adduser verwenden, wird anscheinend der vollständige Befehl „useradd“ bereits ausgeführt, sobald das Dialogfeld angezeigt wird. Selbst wenn Sie STRG-C drücken, ist Ihr Benutzer vorhanden.
Da in den neuen Systemen „persönliche“ Gruppen erstellt werden, müssen Sie zum Entfernen des neu erstellten Benutzers Folgendes tun:
- vi /etc/passwd
- vi /etc/Gruppe
- rm -rf /home/BENUTZER
Ich gehe davon aus, dass der Rest Metadaten über den Benutzer sind, weil adduser useradd „verwendet“. Technisch gesehen gibt es also keine Änderungen an „skel“, „file masks“ oder dergleichen, also Ihren Systemstandards.
Andererseits kann useradd beim Scripting nützlicher sein, weil es keine TUI anzeigt.
Ehrlich gesagt habe ich es nur in Rasbian getestet, weil das der Grund war, warum ich auf die Frage gestoßen bin.
Ich kann mir vorstellen, dass andere Betriebssysteme eine andere Version von Adduser implementieren.