Qual è la differenza tra i comandi adduser
e useradd
su Ubuntu?
Qual è la differenza tra i comandi adduser
e useradd
su Ubuntu?
Risposte:
useradd
è binario nativo compilato con il sistema. Maadduser
è uno script perl che usa iluseradd
binario nel back-end.
adduser
è più intuitivo e interattivo rispetto al suo back-enduseradd
. Non c'è differenza nelle funzionalità fornite.
-m
opzione creerà la home directory.
adduser(8)
è più intuitivo e crea e configura un utente per impostazione predefinita nel modo previsto. E useradd(8)
fai solo quello che chiedi, quindi vuoi creare una home directory, devi dirlo per crearla per te.
Utilizzare sempreadduser
(e deluser
quando si eliminano gli utenti) quando si creano nuovi utenti dalla riga di comando. (Se stai scrivendo uno script, specialmente se miri alla portabilità, potresti voler utilizzare invece le utilità di basso livello - e adduser
/ deluser
potrebbe non essere disponibile su tutte le distro, ad esempio su SuSE.)
I comandi useradd
, userdel
e usermod
sono utility di basso livello che sono lì per ragioni storiche, mentre adduser/deluser
Do The Right Thing ™. (Ricordo quale usare pensando che user*
viene dopo adduser/deluser
in alfabeto, e quindi è "peggio".)
Secondo le rispettive manpage (su Ubuntu 12.04 Precise Pangolin, ovvero un sistema derivato Debian).
adduser
dice:(Enfasi aggiunta.)
adduser
eaddgroup
aggiungere utenti e gruppi al sistema in base alle opzioni della riga di comando e alle informazioni di configurazione in/etc/adduser.conf
. Sono front-end più amichevoli per strumenti di basso livello comeuseradd
,groupadd
eusermod
programmi , per impostazione predefinita che scelgono valori UID e GID conformi alla politica Debian, creando una home directory con configurazione scheletrica, eseguendo uno script personalizzato e altre funzionalità.adduser
eaddgroup
può essere eseguito in una delle cinque modalità:
useradd
dice:
useradd
è un'utilità di basso livello per l'aggiunta di utenti. Su Debian, gli amministratori dovrebberoadduser(8)
invece usare invece.
Vedi anche: Qual è la differenza tra "adduser" e "useradd"? (su SuperUser)
adduser
": per gli script automatici preferirei useradd
perché è sempre lì, non interattivo e non specifico per la distribuzione .
adduser
su openSUSE, e non è lì. (13.2)
locate adduser
un sistema SuSE 11 al lavoro, ho scoperto che c'era una adduser
manpage, ma non binaria (e né una deluser
manpage né un comando).
/usr/sbin/adduser -> useradd
adduser
: aggiungi utente con profilo completo e informazioni (pass, quota, autorizzazione, ecc.)
useradd
: aggiungi solo l'utente con il suo nome (se vuoi aggiungere un utente temporaneo con solo un nome, altre informazioni non richieste)
Un'altra coppia di differenze, che portano a scenari specifici in cui useradd potrebbe essere preferibile.
In alcune nuove distribuzioni, tra cui Ubuntu 14.4, adduser richiederà informazioni come password e "gecos" (dati per il comando finger). Ciò significa che può essere meno adatto per la chiamata da uno script (credito: già menzionato in un commento di Wernight).
I prompt possono essere soppressi passando argomenti null:
adduser --disabled-password --gecos "" USER
useradd
consente di passare più gruppi aggiuntivi a cui aggiungere un utente tramite l' -G
opzione. adduser
sembra richiedere di chiamare il comando una volta per ogni gruppo da aggiungere.
adduser
è più amichevole in quanto configura le cartelle home dell'account e altre impostazioni (ad es. caricamento automatico delle statistiche di sistema e delle notifiche all'accesso), mentre useradd
crea semplicemente l'utente.
La differenza di base è che "adduser" creerà la directory home e aggiungerà i file scheletro a quella directory in cui "useradd" non creerà alcuna directory home e file scheletro!
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
# 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#
Sottolineerò anche che adduser
non sempre ha l' -M
opzione e inoltre non rispetta la --system
bandiera che dice specificamente :
Si noti che useradd non creerà una home directory per tale utente, indipendentemente dall'impostazione predefinita in /etc/login.defs (CREATE_HOME). È necessario specificare le opzioni -m se si desidera creare una home directory per la creazione di un account di sistema.
Se stai cercando di creare un utente di sistema senza una home directory, utilizza useradd --system -M
.