Qual è la differenza tra adduser e useradd?


Risposte:


387

useraddè binario nativo compilato con il sistema. Ma adduserè uno script perl che usa il useraddbinario nel back-end.

adduserè più intuitivo e interattivo rispetto al suo back-end useradd. Non c'è differenza nelle funzionalità fornite.

Fonte: qual è la differenza tra "adduser" e "useradd"?


59
Il comando add useradd non creerà la directory '/ home / username' ma il comando adduser lo farà
Approfondire il

65
useradd con l' -mopzione creerà la home directory.
Richsinn,

10
L'implementazione non è così interessante, lo è la semantica. Like 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.
Anders,

23
Devo google questo ogni volta ... Come posso aiutare me stesso a ricordare quale è quale?
Quentin Skousen,

11
@kkhugs per me "adduser" sembra il più intuitivo perché è un comando che sembra inglese, mentre l'altro no, semanticamente. Se lo ricordi come il "più intuitivo" dei due, puoi anche provare a ricordarlo come il preferito / più facile.
pzkpfw,

146

Utilizzare sempreadduser (e deluserquando 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/ deluserpotrebbe non essere disponibile su tutte le distro, ad esempio su SuSE.)

I comandi useradd, userdele usermodsono utility di basso livello che sono lì per ragioni storiche, mentre adduser/deluserDo The Right Thing ™. (Ricordo quale usare pensando che user*viene dopo adduser/deluserin alfabeto, e quindi è "peggio".)

Secondo le rispettive manpage (su Ubuntu 12.04 Precise Pangolin, ovvero un sistema derivato Debian).

Manpage per adduserdice:

(Enfasi aggiunta.)

addusere addgroupaggiungere 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 come useradd, groupadde usermodprogrammi , 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à. addusere addgrouppuò essere eseguito in una delle cinque modalità:

Manpage per useradddice:

useraddè un'utilità di basso livello per l'aggiunta di utenti. Su Debian, gli amministratori dovrebbero adduser(8)invece usare invece.

Vedi anche: Qual è la differenza tra "adduser" e "useradd"? (su SuperUser)


6
Non ricordo mai quale, quindi questo è il mio stupido mnemonico se aiuta qualcuno :) "utente" fa rima con "perdente", e "perdente" arriva per ultimo. Pertanto: adduser, deluser.
Mads Skjern,

26
In realtà non sono d' accordo su " Sempre utenteadduser ": per gli script automatici preferirei useraddperché è sempre lì, non interattivo e non specifico per la distribuzione .
Wernight,

2
Ho provato addusersu openSUSE, e non è lì. (13.2)
cst1992

1
@ cst1992 Hai ragione, ho modificato la risposta per riflettere questo. Curiosamente, quando ho provato locate adduserun sistema SuSE 11 al lavoro, ho scoperto che c'era una addusermanpage, ma non binaria (e né una delusermanpage né un comando).
zrajm,

2
Su Red Hat/usr/sbin/adduser -> useradd
Levon,

17

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)


1
+1 e benvenuto! Ho votato a favore della persona incapace di spiegare il suo precedente voto negativo. Continuate così! I bravi programmatori salgono sempre in cima - (e non votare in basso senza una spiegazione). :)
Ricalsin,

11

Un'altra coppia di differenze, che portano a scenari specifici in cui useradd potrebbe essere preferibile.

  1. 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
    
  2. useraddconsente di passare più gruppi aggiuntivi a cui aggiungere un utente tramite l' -Gopzione. addusersembra richiedere di chiamare il comando una volta per ogni gruppo da aggiungere.


Non funziona su Ubuntu 16.04.
answerSeeker,

8

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 useraddcrea semplicemente l'utente.


2
Sbagliato. useradd può creare la home directory con -m, impostare la password con -p, creare file di scheletro con -k e aggiungere l'utente ai gruppi con -G.
ychaouche,

5

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!

prova adduser:

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#

Sbagliato. Vedi commento precedente
ychaouche,

0

Sottolineerò anche che addusernon sempre ha l' -Mopzione e inoltre non rispetta la --systembandiera 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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.