Ti è mai capitato di dover creare utenti su una distribuzione linux da terminale? Come puoi creare utenti quando sei connesso ad un server in SSH? Non conosci la distribuzione che stai utilizzando e non trovi il tool grafico per gestire gli utenti?
Linux ha tanti comandi per creare utenze direttamente dalla riga di comando,
ed in questo articolo vedremo come creare utenti utilizzando il comando
useradd
.
Molte distribuzioni Linux offrono la possibilità di creare utenti utilizzando strumenti grafici; tuttavia è una buona idea imparare a creare utenti utilizzando la riga di comando per trasferire la propria conoscenza da una distribuzione all'altra, senza dover imparare una nuova interfaccia grafica.
useradd
è un comando di basso livello poiché consente di controllare
nel minimo dettaglio le caratteristiche dell'utente da creare.
Creazione nuovo utente
La creazione di un nuovo utente, denominato ad esempio test, all'interno del sistema avviene eseguendo il seguente comando:
sudo useradd test
L'esito dell'esecuzione del comando è desumibile dal contenuto del file di
configurazione memorizzato in /etc/default/useradd
.
Per controllare il contenuto del file, aprirlo con un editor testuale:
sudo vi /etc/default/useradd
ed al suo interno troveremo le configurazioni impostate. Nella seguente immagine sono mostrate le opzioni di default di una distribuzione Linux Manjaro:
GROUP=users
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
Come si evince dalla precedente configurazione, le opzioni di default
stabiliscono quale sia la cartella HOME
, i gruppi ai quali l'utente
sarà associato, la data di scadenza della password, la shell
di default, la
cartella che inizializzerà la cartella profile
dell'utente.
Da notare che le informazioni e le impostazioni contenute nel file, utilizzate
quando si esegue il comando, variano da distribuzione a distribuzione e sono
tutte impostate nel file /etc/default/useradd
.
sudo
non è installato su ogni
distribuzione. Se non è installato, esegui l'accesso con un account che
possiede i privilegi per poter eseguire il comando useradd
.
Creazione nuovo utente con home
Fino ad ora abbiamo visto l'esecuzione del comando senza vincolarla con nessuna
opzione. Il comando useradd
consente di determinare alcune
caratteristiche da attribuire all'utente: tra queste c'è l'assegnazione o meno
della cartella HOME
.
L'attribuzione dipende dal file di configurazione memorizzato in
/etc/default/useradd
.
Per forzare la creazione della cartella HOME
, usa il seguente
comando:
sudo useradd -m test
L'esecuzione crea una cartella /home/test
per l'utente test.
Creazione nuovo utente con home
personalizzata
Se vuoi che un utente abbia una cartella HOME
in un percorso diverso
rispetto al default, utilizza l'opzione -d
:
sudo useradd -m -d /tmp/test test
L'esecuzione crea una cartella HOME
nel percorso /tmp/test
per
l'utente test.
Usando l'opzione -m
, la cartella potrebbe non essere creata. Ciò
dipende dalle impostazioni presenti sul file /etc/login.defs
.
Per far funzionare il precedente comando senza dover utilizzare l'opzione
-m
, modificare il file /etc/login.defs
.
Alla fine del file inserire: CREATE_HOME yes
Cambiamento utente sul terminale
Verifica il tuo nuovo account utente usando il seguente comando:
sudo su - test
Il precedente comando cambia utente sul terminale, eseguendo la login con
l'utente test e, assumendo che sia stata creata una cartella HOME
,
sposta la shell sulla cartella HOME
dell'utente.
Creazione utente con data di scadenza
Se nel tuo ufficio hai un collaboratore che lavorerà con te per un tempo stabilito, puoi impostare una data di scadenza al suo account. Allo stesso modo, se hai ospiti a casa, puoi creare un utente con una data di scadenza che coinciderà con la loro data di partenza.
Per impostare una data di scadenza quando crei un utente, usa il seguente comando:
sudo useradd -d /home/test -e 2020-09-01 test
La data di scadenza deve essere specificata nel formato YYYY-MM-DD
dove
YYYY
rappresenta l'anno, MM
rappresenta il mese, DD
rappresenta il giorno.
Creazione utente assegnato ad un gruppo
Quando un nuovo utente si unisce alla tua azienda, assegna specifici gruppi per garantire l'accesso agli stessi file ed alle stesse cartelle accessibili agli altri membri del gruppo.
Ad esempio, Ennio è uno sviluppatore. Il seguente comando aggiunge ennio al gruppo degli sviluppatori.
sudo useradd -m ennio -G sviluppatori
Creazione utente senza home
Se il file /etc/login.defs
ha l'opzione CREATE_HOME
impostata a
yes
, quando si crea un utente, una nuova cartella HOME
è creata.
Per creare un utente, senza creare alcuna cartella HOME
, eseguire il
seguente comando:
sudo useradd -M test
Attenzione!
Non confondere l'opzione -m
che prevede la creazione della cartella
home, con -M
che non prevede la creazione della cartella home.
Impostare un nome completo all'utente
Il processo di creazione di un utente prevede l'associazione di un nome completo
all'utente per evitare ambiguità. Supponiamo che una regola aziendale preveda
come nome utente mrossi
, conviene associare il nome completo Mario
Rossi per evitare che ci si confonda con un altro utente Mino Rossi.
Aggiungi un commento quando crei un account utente per consentire di capire quale sia il nome reale dell'utente. Per associare un commento eseguire il seguente comando:
sudo useradd -m mrossi -c "Mario Rossi"
Analizzare il file /etc/passwd
Quando un nuovo utente è creato, i dettagli sono aggiunti al file
/etc/passwd
. Per vedere i dettagli di un particolare utente, usare il
comando grep
come segue:
grep test /etc/passwd
Il file /etc/passwd
contiene una serie di informazioni separate dai
:
per ogni utente. I campi sono i seguenti:
- Username
- Password cifrata (non visibile)
- Id Utente
- Id dei Gruppi dell'utente
- Nome Completo
- Cartella Home
- Shell
Conclusioni
In questo articolo hai imparato come creare un utente in linux attribuendo o meno diverse proprietà al momento della creazione. Hai imparato inoltre come poter cambiare utente all'interno di una sessione del terminale e come controllare le proprietà degli utenti creati sul sistema.