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

27664
Petr Pudlák

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

  • Ist einer von ihnen einem anderen überlegen?
  • Warum sind sie nicht zu einem verschmolzen?
  • Gibt es einen signifikanten Unterschied zwischen ihnen?
  • Welches sollte ich verwenden? Oder hängt es von einem Anwendungsfall ab?
51

3 Antworten auf die Frage

60
Apple II

useradd is native binary compiled with the system. But, adduser is a perl script which uses useradd binary in back-end.

adduser is more user friendly and interactive than its back-end useradd. There's no difference in features provided.

adduser ist nicht für alle Distributionen verfügbar (z. B. Suse-basiert). Bei einigen anderen ist es lediglich ein Symlink zu useradd (Redhat-basiert). ychaouche vor 6 Jahren 0
9
user517969

Der Hauptvorteil von adduser gegenüber useradd ist der Umgang mit Benutzern auf Systemebene. Mit adduser legt das Benutzerkonto auf Systemebene bei der Erstellung ein Benutzerverzeichnis für den Systembenutzer in das Home-Verzeichnis, in dem sich useradd nicht automatisch befindet. Wenn Sie den Mann lesen, sind sie im Wesentlichen gleich, außer für Benutzer auf Systemebene und die zugehörigen Basisverzeichnisse sind automatisch. adduser erstellt automatisch ein / home / user-Verzeichnis für Benutzer auf Systemebene, für die keine Bereitstellung in useradd vorliegt, es sei denn, diese Option wird mit der Option -m angegeben . Die anderen Messwerte, die ich kennengelernt habe, besagen generell, dass UID und GUID von akzeptierten konformen Debian-Standards in adduser zugewiesen werden.

adduser hat eine Option --no-create-home. ychaouche vor 6 Jahren 1
0
Happyblue

In einigen Redhat-Instanzen (4,9 aus 2011 und 6,9 aus 2017) wurde adduser lediglich als Alias ​​für useradd und nicht als Perl-Skript bezeichnet. 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 daran, dass useradd das "richtige" Programm ist: Das Hinzufügen eines Benutzers ist nur eine Operation im CRUD-Spektrum. Sie benötigen auch 'Modifizieren' und 'Löschen' Operationen ('Lesen' wird vermutlich durch das Anzeigen von / etc / passwd abgedeckt). Die Programme heißen also user * (useradd, usermod und userdel). Ich nehme an, die alternative * Benennungskonvention für Benutzer (adduser, moduser und deluser - diese sind nicht vorhanden) könnte ebenfalls funktionieren. Aber es wäre etwas unbeholfener (aus einem Grund, den ich im Moment nicht klar ausdrücken kann :)

"moduser" kann unter Debian nicht gefunden werden, "deluser" ist jedoch definitiv vorhanden. ychaouche vor 6 Jahren 0