Cosa fa adduser che useradd non fa?


71

Oltre ai più diffusi useradd, i sistemi basati su Debian contengono anche un addusercomando aggiuntivo che fornisce un'interfaccia di livello superiore per l'aggiunta di utenti e alcune attività correlate. Esistono varie domande / risposte su altri siti SE che descrivono in dettaglio le differenze di base tra questi comandi, ad esempio:

La maggior parte delle risposte afferma essenzialmente che adduserfornisce un'interfaccia migliore per aggiungere utenti in modo interattivo, ma non fornisce molti dettagli su ciò che accade quando adduserviene eseguito e non viene confrontato useradd. Così:

  1. Che cosa significa adduserfare quello useraddnon lo fa?
  2. Quali comandi devo usare per produrre risultati equivalenti?

Risposte:


79

Prima di tutto, i rispettivi frammenti di pagine man evidenziano le differenze tra i due comandi e danno qualche indicazione su ciò che sta accadendo. Per adduser:

adduser e addgroup aggiungono 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 gli strumenti di basso livello come i programmi useradd, groupadd e usermod, che scelgono di default i valori UID e GID conformi alla politica Debian, creando una home directory con configurazione scheletrica, eseguendo uno script personalizzato e altre funzionalità.

Quindi per useradd:

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

Un'ulteriore analisi di adduserrivela che si tratta di uno script perl che fornisce un'interfaccia di alto livello e quindi offre alcune delle funzionalità dei seguenti comandi:

  • useradd
  • groupadd
  • passwd - utilizzato per aggiungere / modificare le password degli utenti.
  • gpasswd - utilizzato per aggiungere / modificare le password di gruppo.
  • usermod - utilizzato per modificare vari parametri associati all'utente.
  • chfn - utilizzato per aggiungere / modificare ulteriori informazioni contenute in un utente.
  • chage - utilizzato per modificare le informazioni sulla scadenza della password.
  • edquota - utilizzato per modificare le quote di utilizzo del disco.

Un'esecuzione di base del addusercomando è la seguente:

adduser username

Questo semplice comando farà una serie di cose:

  1. Crea l'utente di nome username.
  2. Crea la home directory dell'utente (di default è /home/usernamee copia i file da /etc/skelessa).
  3. Crea un gruppo con lo stesso nome dell'utente e inseriscilo.
  4. Richiedi una password per l'utente.
  5. Richiedi ulteriori informazioni sull'utente.

La useraddmaggior parte del programma può quasi tutto ciò, tuttavia non lo fa per impostazione predefinita e necessita di opzioni aggiuntive. Alcune delle informazioni richiedono più comandi:

useradd -m -U username
passwd username
chfn username

Si noti che addusergarantisce che gli UID e GID creati siano conformi alla politica Debian . La creazione di utenti normali con useraddsembra essere ok, fornita UID_MIN/ UID_MAXin /etc/login.defscorrisponde alla politica di Debian. Tuttavia, il problema è che Debian specifica un intervallo particolare per gli UID degli utenti di sistema in cui sembra essere supportato solo /etc/adduser.conf, quindi l'aggiunta ingenua di un utente del sistema con useradde senza specificare un UID / GUID nell'intervallo corretto lascia il potenziale per gravi problemi.

Un altro uso comune adduserè quello di semplificare il processo di aggiunta di un utente a un gruppo. Qui, il seguente comando:

adduser username newgroup

sostituisce un usermodcomando più complesso che richiede di specificare i gruppi di cui l'utente è già membro (e che si desidera che l'utente rimanga membro):

usermod -G all,other,groups,user,is,in,newgroup

Un aspetto negativo dell'utilizzo adduserqui è che è possibile specificare solo un gruppo alla volta.


Questo è fantastico! Non sapevo nemmeno che fosse una domanda. Prende le password con hash come fa useradd? Questo è un ottimo lavoro, comunque.
Mikeserv,

Non so se sono completamente d'accordo con l'affermazione "gli amministratori dovrebbero ..." però ... Personalmente, credo che l'amministratore dovrebbe probabilmente mettere insieme il proprio addusersecondo una politica a livello di sistema, ma è solo poltrona quarterbacking al massimo.
Mikeserv,

@mikeserv, no non ci sono password con hash. C'è un altro programma che dovresti conoscere però chpasswd- questo può accettare password con hash stdin. Aspetterò domani prima di aggiornare l'altra risposta, anche se penso.
Graeme,

bel post. Per me un po 'troppi dettagli. Quello che mi manca di più è che è adduserstato originariamente creato per l'amministratore del server che spesso aveva bisogno di creare / modificare / limitare utenti reali come su un server di posta elettronica all'università. Con adduserte puoi automatizzare il processo. Questo è cambiato un po 'nel corso degli anni, quindi al giorno d'oggi useraddpuò essere difficile per molti amministratori e per loro adduserè diventato lo strumento preferito.

Sul mio Ubuntu 16.04, -U/ --user-groupsembra l'impostazione predefinita.
Franklin Yu,

2

Il comando adduser di default crea anche una directory / home / user per gli utenti del sistema, cosa che non si può fare con il comando useradd . useradd aggiunge solo le home directory per utenti normali e non per utenti di sistema.


1

L'amministratore di sistema può fare qualsiasi cosa con useradd che può essere fatto con adduser. È stato dichiarato qui che non è possibile creare una directory / home / user per gli utenti di sistema con useradd, e si può assolutamente, modificando i file contenuti in / etc / skel. / etc / skel contiene il set di file inizialmente utilizzati per popolare la home directory di un nuovo utente.

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.