GNU/Linux >> Linux Esercitazione >  >> Linux

Introduzione al comando useradd di Linux

L'aggiunta di un utente è uno degli esercizi più fondamentali su qualsiasi sistema informatico; questo articolo si concentra su come farlo su un sistema Linux.

Più risorse Linux

  • Comandi Linux cheat sheet
  • Cheat sheet sui comandi avanzati di Linux
  • Corso online gratuito:Panoramica tecnica RHEL
  • Cheat sheet della rete Linux
  • Cheat sheet di SELinux
  • Cheat sheet dei comandi comuni di Linux
  • Cosa sono i container Linux?
  • I nostri ultimi articoli su Linux

Prima di iniziare, voglio menzionare tre fondamentali da tenere a mente. Innanzitutto, come con la maggior parte dei sistemi operativi, gli utenti Linux necessitano di un account per poter accedere. Questo articolo copre specificamente gli account locali, non gli account di rete come LDAP. In secondo luogo, gli account hanno sia un nome (chiamato nome utente) sia un numero (chiamato ID utente). Terzo, gli utenti vengono in genere inseriti in un gruppo. I gruppi hanno anche un nome e un ID gruppo.

Come ti aspetteresti, Linux include un'utilità della riga di comando per aggiungere utenti; si chiama useradd . Potresti anche trovare il comando adduser . Molte distribuzioni hanno aggiunto questo collegamento simbolico a useradd comando per comodità.

$ file `which adduser`
/usr/sbin/adduser: symbolic link to useradd

Diamo un'occhiata a useradd .

Nota:le impostazioni predefinite descritte in questo articolo riflettono quelle di Red Hat Enterprise Linux 8.0. Potresti trovare sottili differenze in questi file e alcune impostazioni predefinite su altre distribuzioni Linux o altri sistemi operativi Unix come FreeBSD o Solaris.

Comportamento predefinito

L'utilizzo di base di useradd è abbastanza semplice:un utente può essere aggiunto semplicemente fornendo il suo nome utente.

$ sudo useradd sonny

In questo esempio, useradd comando crea un account chiamato sonny . Viene creato anche un gruppo con lo stesso nome e sonny viene inserito in esso per essere utilizzato come gruppo principale. Esistono altri parametri, come la lingua e la shell, che vengono applicati in base alle impostazioni predefinite e ai valori impostati nei file di configurazione /etc/default/useradd e /etc/login.defs . Questo è generalmente sufficiente per un singolo sistema personale o un piccolo ambiente aziendale con un server.

Mentre i due file precedenti regolano il comportamento di useradd , le informazioni sull'utente vengono archiviate in altri file che si trovano in /etc directory, a cui farò riferimento in questo articolo.

File Descrizione Campi (grassetto—impostati da useradd)
passwd Memorizza i dettagli dell'account utente nome utente :non utilizzato:uid :gid :commenta :homedir :conchiglia
ombra Memorizza i dettagli di sicurezza dell'account utente nome utente :password:ultima modifica:minimo:massimo:avviso:non attivo :scadenza :non utilizzato
gruppo Memorizza i dettagli del gruppo nome gruppo :non utilizzato:gid :membri

Comportamento personalizzabile

La riga di comando consente la personalizzazione nei momenti in cui un amministratore necessita di un controllo più accurato, ad esempio per specificare il numero ID di un utente.

Numeri ID utente e gruppo

Per impostazione predefinita, useradd tenta di utilizzare lo stesso numero per l'ID utente (UID) e l'ID gruppo primario (GID), ma non ci sono garanzie. Sebbene non sia necessario che l'UID e il GID corrispondano, è più facile per gli amministratori gestirli quando lo fanno.

Ho solo lo scenario da spiegare. Supponiamo che io aggiunga un altro account, questa volta per Timmy. Confrontando i due utenti, sonny e timmy , mostra che sia gli utenti che i rispettivi gruppi principali sono stati creati utilizzando il geent comando.

$ getent passwd sonny timmy
sonny:x:1001:1002:Sonny:/home/sonny:/bin/bash
timmy:x:1002:1003::/home/timmy:/bin/bash

$ getent group sonny timmy
sonny:x:1002:
timmy:x:1003:

Sfortunatamente, né l'UID degli utenti né il GID principale corrispondono. Questo perché il comportamento predefinito consiste nell'assegnare il successivo UID disponibile all'utente e quindi tentare di assegnare lo stesso numero al gruppo principale. Tuttavia, se quel numero è già utilizzato, al gruppo viene assegnato il successivo GID disponibile. Per spiegare cosa è successo, ipotizzo che esista già un gruppo con GID 1001 e inserisco un comando per confermare.

$ getent group 1001
book:x:1001:alan

Il gruppo prenota con l'ID 1001 ha causato lo spegnimento dei GID di uno. Questo è un esempio in cui un amministratore di sistema dovrebbe assumere un maggiore controllo del processo di creazione dell'utente. Per risolvere questo problema, devo prima determinare il prossimo utente disponibile e l'ID gruppo che corrisponderà. I comandi gruppo getent e password getent sarà utile per determinare il prossimo numero disponibile. Questo numero può essere passato con -u argomento.

$ sudo useradd -u 1004 bobby

$ getent passwd bobby; getent group bobby
bobby:x:1004:1004::/home/bobby:/bin/bash
bobby:x:1004:

Un altro buon motivo per specificare l'ID è per gli utenti che accederanno ai file su un sistema remoto utilizzando il Network File System (NFS). NFS è più facile da amministrare quando tutti i sistemi client e server hanno lo stesso ID configurato per un determinato utente. Ne tratterò un po' più in dettaglio nel mio articolo sull'uso di autofs per montare condivisioni NFS.

Più personalizzazione

Molto spesso, tuttavia, è necessario specificare altri parametri dell'account per un utente. Di seguito sono riportati brevi esempi delle personalizzazioni più comuni che potresti dover utilizzare.

Commenta

L'opzione di commento è un campo di testo normale per fornire una breve descrizione o altre informazioni utilizzando -c argomento.

$ sudo useradd -c "Bailey is cool" bailey
$ getent passwd bailey
bailey:x:1011:1011:Bailey is cool:/home/bailey:/bin/bash

Gruppi

A un utente può essere assegnato un gruppo principale e più gruppi secondari. Il -g argomento specifica il nome o il GID del gruppo primario. Se non è specificato, useradd crea un gruppo principale con lo stesso nome dell'utente (come illustrato sopra). Il -G L'argomento (maiuscolo) viene utilizzato per passare un elenco di gruppi separati da virgole in cui verrà inserito l'utente; questi sono conosciuti come gruppi secondari.

$ sudo useradd -G tgroup,fgroup,libvirt milly 
$ id milly
uid=1012(milly) gid=1012(milly) groups=1012(milly),981(libvirt),4000(fgroup),3000(tgroup)

Directory principale

Il comportamento predefinito di useradd consiste nel creare la directory home dell'utente in /home . Tuttavia, diversi aspetti della directory home possono essere ignorati con i seguenti argomenti. Il -b imposta un'altra directory in cui è possibile posizionare le home degli utenti. Ad esempio, /home2 invece dell'impostazione predefinita /home .

$ sudo useradd -b /home2 vicky
$ getent passwd vicky
vicky:x:1013:1013::/home2/vicky:/bin/bash

Il -d consente di specificare una home directory con un nome diverso dall'utente.

$ sudo useradd -d /home/ben jerry
$ getent passwd jerry
jerry:x:1014:1014::/home/ben:/bin/bash

La directory dello scheletro

Il -k indica che la nuova home directory del nuovo utente venga popolata con tutti i file in /etc/skel directory. Di solito si tratta di file di configurazione della shell, ma possono essere qualsiasi cosa che un amministratore di sistema vorrebbe mettere a disposizione di tutti i nuovi utenti.

Shell

Le -s argomento può essere utilizzato per specificare la shell. Il valore predefinito viene utilizzato se non viene specificato nient'altro. Ad esempio, di seguito, shell bash è definito nel file di configurazione predefinito, ma Wally ha richiesto zsh .

$ grep SHELL /etc/default/useradd 
SHELL=/bin/bash

$ sudo useradd -s /usr/bin/zsh wally
$ getent passwd wally
wally:x:1004:1004::/home/wally:/usr/bin/zsh

Sicurezza

La sicurezza è una parte essenziale della gestione degli utenti, quindi ci sono diverse opzioni disponibili con useradd comando. A un account utente può essere assegnata una data di scadenza, nella forma AAAA-MM-GG, utilizzando -e argomento.

$ sudo useradd -e 20191231 sammy
$ sudo getent shadow sammy
sammy:!!:18171:0:99999:7::20191231:

Un account può anche essere disattivato automaticamente se la password scade. Il -f l'argomento imposterà il numero di giorni dopo la scadenza della password prima che l'account venga disabilitato. Zero è immediato.

$ sudo useradd -f 30 willy
$ sudo getent shadow willy
willy:!!:18171:0:99999:7:30::

Un esempio del mondo reale

In pratica, molti di questi argomenti possono essere utilizzati durante la creazione di un nuovo account utente. Ad esempio, se devo creare un account per Perry, potrei usare il seguente comando:

$ sudo useradd -u 1020 -c "Perry Example" \
-G tgroup -b /home2 \
-s /usr/bin/zsh \
-e 20201201 -f 5 perry

Fare riferimento alle sezioni precedenti per comprendere ciascuna opzione. Verifica i risultati con:

$ getent passwd perry; getent group perry; getent shadow perry; id perry
perry:x:1020:1020:Perry Example:/home2/perry:/usr/bin/zsh
perry:x:1020:
perry:!!:18171:0:99999:7:5:20201201:
uid=1020(perry) gid=1020(perry) groups=1020(perry),3000(tgroup)

Alcuni consigli finali

La aggiunta utente Il comando è un "must-know" per qualsiasi amministratore Unix (non solo Linux). È importante comprendere tutte le sue opzioni poiché la creazione dell'utente è qualcosa che vuoi ottenere bene la prima volta. Ciò significa avere una convenzione di denominazione ben congegnata che includa un intervallo UID/GID dedicato riservato ai tuoi utenti in tutta l'azienda, non solo su un singolo sistema, in particolare quando lavori in un'organizzazione in crescita.


Linux
  1. Padroneggia il comando ls di Linux

  2. Introduzione al comando alternatives in Linux

  3. 5 Esempi pratici del comando dd in Linux

  4. Il comando locate in Linux

  5. Esempi di comandi chgrp in Linux

Il comando timer in Linux

Il comando curl di Linux

Esempi essenziali del comando ps in Linux

Qual è il comando kill in Linux?

Comprendere il comando dell'ora in Linux

Uso del comando grep in Linux