und es ist und bleibt eine gute, berechtigte Frage. Das Problem ist nicht, dass die Leute es in den jeweiligen Kontexten fragen, sondern dass diese Frage überhaupt gestellt werden muss.
foo
Antworten:
387
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.
Der Befehl add useradd erstellt kein Verzeichnis '/ home / username', aber der Befehl adduser wird
Deepen
65
useradd mit der -mOption erstellt das Home-Verzeichnis.
Richsinn
10
Die Implimentation ist nicht so interessant, die Semantik ist. Like adduser(8)ist benutzerfreundlicher und erstellt und richtet einen Benutzer standardmäßig so ein, wie Sie es erwarten. Und useradd(8)tun Sie nur das, wonach Sie fragen. Wenn Sie also ein Basisverzeichnis erstellen möchten, müssen Sie es angeben, um es für Sie zu erstellen.
Anders
23
Ich muss das jedes Mal googeln ... Wie kann ich mir merken, welches welches ist?
Quentin Skousen
11
@kkhugs für mich "adduser" fühlt sich am intuitivsten an, weil es ein Befehl ist, der sich wie Englisch anhört, während der andere semantisch nicht. Wenn Sie sich als das "intuitivste" der beiden erinnern, können Sie auch versuchen, es als das bevorzugte / einfachere zu merken.
pzkpfw
146
Verwenden Sie immeradduser (und deluserbeim Löschen von Benutzern), wenn Sie neue Benutzer über die Befehlszeile erstellen. (Wenn Sie ein Skript schreiben, insbesondere wenn Sie Portabilität anstreben, möchten Sie möglicherweise stattdessen die Lowlevel-Dienstprogramme verwenden - und adduser/ oder sind delusermöglicherweise nicht in allen Distributionen verfügbar, z. B. unter SuSE.)
Die Befehle useradd, userdelund usermodsind Hilfsprogramme, die aus historischen Gründen zur Verfügung stehen, während adduser/deluserDo The Right Thing ™. (Ich erinnere mich, was ich verwenden soll, indem ich überlege, user*was adduser/deluserim Alphabet nachher kommt und daher "schlimmer" ist.)
Gemäß den jeweiligen Manpages (auf Ubuntu 12.04 Precise Pangolin, dh einem von Debian abgeleiteten System).
Manpage für addusersagt:
(Betonung hinzugefügt.)
adduserund addgroupfügen Sie dem System Benutzer und Gruppen gemäß den Befehlszeilenoptionen und Konfigurationsinformationen in hinzu /etc/adduser.conf. Sie sind freundlicher Frontends auf den Low - Pegel - Tools wie useradd, groupaddund usermodProgramme , die standardmäßig die Wahl Debian - Richtlinien konformes UID und GID - Werte, ein Home - Verzeichnis mit Skelett-Konfiguration Erstellen eines benutzerdefinierten Skript ausgeführt wird , und andere Funktionen.
adduserund addgroupkann in einem von fünf Modi ausgeführt werden:
Manpage für useraddsagt:
useraddist ein Hilfsprogramm für das Hinzufügen von Benutzern. Unter Debian sollten Administratoren normalerweise adduser(8)stattdessen verwenden.
Ich kann mich nie erinnern, welches, also ist das mein blöder Spruch, wenn es jemandem hilft :) "user" reimt sich auf "loser" und "loser" kommt als letztes. Also: adduser, deluser.
Mads Skjern
26
Ich bin nicht mit " Always useradduser " einverstanden : Für automatisierte Skripte würde ich es vorziehen, useraddweil es immer da ist, nicht interaktiv und nicht distro-spezifisch .
Wernight
2
Ich habe adduseropenSUSE ausprobiert und es ist nicht da. (13.2)
cst1992
1
@ cst1992 Du hast Recht, ich habe die Antwort bearbeitet, um dies widerzuspiegeln. Als ich locate adduserein SuSE 11-System bei der Arbeit ausprobierte, stellte ich seltsamerweise fest, dass es eine adduserManpage, aber keine Binärdatei (und weder eine deluserManpage noch einen Befehl) gab.
Zrajm
2
Auf Red Hat/usr/sbin/adduser -> useradd
Levon
17
adduser: Benutzer mit vollem Profil und Informationen hinzufügen (Pass, Kontingent, Erlaubnis usw.)
useradd: Benutzer nur mit seinem Namen hinzufügen (wenn Sie einen temporären Benutzer nur mit einem Namen hinzufügen möchten, andere Informationen nicht erforderlich)
+1 und Willkommen! Ich habe für die Person gestimmt, die nicht in der Lage war, ihre vorherige Abstimmung zu erklären. Mach weiter! Gute Programmierer stehen immer an der Spitze - (und stimmen nicht ohne Erklärung ab). :)
Ricalsin
11
Weitere Unterschiede, die zu bestimmten Szenarien führen, in denen useradd vorzuziehen ist.
In einigen neueren Distributionen, einschließlich Ubuntu 14.4, fordert adduser Informationen wie Passwort und "gecos" (Daten für den Fingerbefehl) an. Dies bedeutet, dass es möglicherweise weniger für den Aufruf aus einem Skript geeignet ist (Kredit: bereits in einem Kommentar von Wernight erwähnt).
Die Eingabeaufforderungen können durch Übergeben von Nullargumenten unterdrückt werden:
adduser --disabled-password --gecos "" USER
useraddMit dieser -GOption können Sie mehrere zusätzliche Gruppen übergeben, denen Sie einen Benutzer hinzufügen möchten. adduserEs scheint erforderlich zu sein, dass Sie den Befehl einmal für jede Gruppe aufrufen, um ihn hinzuzufügen.
adduserist insofern freundlicher, als es die Home-Ordner des Kontos und andere Einstellungen (z. B. das automatische Laden von Systemstatistiken und Benachrichtigungen beim Anmelden) einrichtet, während es useraddnur den Benutzer erstellt.
Falsch. useradd kann mit -m ein Home-Verzeichnis erstellen, mit -p ein Passwort festlegen, mit -k Skelettdateien erstellen und mit -G einen Benutzer zu einer Gruppe hinzufügen.
Ychaouche
5
Der grundlegende Unterschied ist, dass "adduser" ein Basisverzeichnis erstellt und Skelettdateien zu diesem Verzeichnis hinzufügt, in dem "useradd" keine Basisverzeichnis- und Skelettdateien erstellt!
adduser versuche:
Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
useradd try1:
# ll /home/
total 20
drwxr-xr-x 5 root root 4096 Oct 26 15:52 ./
drwxr-xr-x 22 root root 4096 Oct 26 15:47 ../
drwx------ 8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x 3 root root 4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x 2 try try 4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#
Ich werde auch darauf hinweisen, dass adduserdies nicht immer die -MOption hat und auch nicht die --systemFlagge respektiert, die speziell besagt :
Beachten Sie, dass useradd unabhängig von der Standardeinstellung in /etc/login.defs (CREATE_HOME) kein Basisverzeichnis für einen solchen Benutzer erstellt. Sie müssen die Optionen -m angeben, wenn Sie ein Basisverzeichnis für ein Systemkonto erstellen möchten.
Wenn Sie versuchen, einen Systembenutzer ohne Basisverzeichnis zu erstellen, verwenden Sie useradd --system -M.
Antworten:
Quelle: Was ist der Unterschied zwischen "adduser" und "useradd"?
quelle
-m
Option erstellt das Home-Verzeichnis.adduser(8)
ist benutzerfreundlicher und erstellt und richtet einen Benutzer standardmäßig so ein, wie Sie es erwarten. Unduseradd(8)
tun Sie nur das, wonach Sie fragen. Wenn Sie also ein Basisverzeichnis erstellen möchten, müssen Sie es angeben, um es für Sie zu erstellen.Verwenden Sie immer
adduser
(unddeluser
beim Löschen von Benutzern), wenn Sie neue Benutzer über die Befehlszeile erstellen. (Wenn Sie ein Skript schreiben, insbesondere wenn Sie Portabilität anstreben, möchten Sie möglicherweise stattdessen die Lowlevel-Dienstprogramme verwenden - undadduser
/ oder sinddeluser
möglicherweise nicht in allen Distributionen verfügbar, z. B. unter SuSE.)Die Befehle
useradd
,userdel
undusermod
sind Hilfsprogramme, die aus historischen Gründen zur Verfügung stehen, währendadduser/deluser
Do The Right Thing ™. (Ich erinnere mich, was ich verwenden soll, indem ich überlege,user*
wasadduser/deluser
im Alphabet nachher kommt und daher "schlimmer" ist.)Gemäß den jeweiligen Manpages (auf Ubuntu 12.04 Precise Pangolin, dh einem von Debian abgeleiteten System).
Manpage für
adduser
sagt:(Betonung hinzugefügt.)
Manpage für
useradd
sagt:Siehe auch: Was ist der Unterschied zwischen "adduser" und "useradd"? (auf SuperUser)
quelle
adduser
" einverstanden : Für automatisierte Skripte würde ich es vorziehen,useradd
weil es immer da ist, nicht interaktiv und nicht distro-spezifisch .adduser
openSUSE ausprobiert und es ist nicht da. (13.2)locate adduser
ein SuSE 11-System bei der Arbeit ausprobierte, stellte ich seltsamerweise fest, dass es eineadduser
Manpage, aber keine Binärdatei (und weder einedeluser
Manpage noch einen Befehl) gab./usr/sbin/adduser -> useradd
adduser
: Benutzer mit vollem Profil und Informationen hinzufügen (Pass, Kontingent, Erlaubnis usw.)useradd
: Benutzer nur mit seinem Namen hinzufügen (wenn Sie einen temporären Benutzer nur mit einem Namen hinzufügen möchten, andere Informationen nicht erforderlich)quelle
Weitere Unterschiede, die zu bestimmten Szenarien führen, in denen useradd vorzuziehen ist.
In einigen neueren Distributionen, einschließlich Ubuntu 14.4, fordert adduser Informationen wie Passwort und "gecos" (Daten für den Fingerbefehl) an. Dies bedeutet, dass es möglicherweise weniger für den Aufruf aus einem Skript geeignet ist (Kredit: bereits in einem Kommentar von Wernight erwähnt).
Die Eingabeaufforderungen können durch Übergeben von Nullargumenten unterdrückt werden:
useradd
Mit dieser-G
Option können Sie mehrere zusätzliche Gruppen übergeben, denen Sie einen Benutzer hinzufügen möchten.adduser
Es scheint erforderlich zu sein, dass Sie den Befehl einmal für jede Gruppe aufrufen, um ihn hinzuzufügen.quelle
adduser
ist insofern freundlicher, als es die Home-Ordner des Kontos und andere Einstellungen (z. B. das automatische Laden von Systemstatistiken und Benachrichtigungen beim Anmelden) einrichtet, während esuseradd
nur den Benutzer erstellt.quelle
Der grundlegende Unterschied ist, dass "adduser" ein Basisverzeichnis erstellt und Skelettdateien zu diesem Verzeichnis hinzufügt, in dem "useradd" keine Basisverzeichnis- und Skelettdateien erstellt!
adduser versuche:
useradd try1:
quelle
Ich werde auch darauf hinweisen, dass
adduser
dies nicht immer die-M
Option hat und auch nicht die--system
Flagge respektiert, die speziell besagt :Wenn Sie versuchen, einen Systembenutzer ohne Basisverzeichnis zu erstellen, verwenden Sie
useradd --system -M
.quelle