Introduzione

Usermod è un'utilità della riga di comando che consente di modificare le informazioni di accesso di un utente.

Questo articolo spiega come utilizzare il comando usermod per aggiungere un utente a un gruppo, modificare una shell utente, il nome di accesso, la directory home e altro.

Comando usermod

La sintassi del comando usermod assume la seguente forma:

usermod [options] USER

Solo root o gli utenti con accesso sudo possono richiamare usermod e modificare un account utente. In caso di esito positivo, il comando non visualizza alcun output.

Aggiungere un utente a un gruppo

Il caso d'uso più tipico di usermod è l'aggiunta di un utente a un gruppo.

Per aggiungere un utente esistente a un gruppo secondario, utilizza le opzioni -a -G seguite dal nome del gruppo e dal nome utente:

usermod -a -G GROUP USER

Se desideri aggiungere l'utente a più gruppi contemporaneamente, specifica i gruppi dopo l'opzione -G separati da , (virgole) senza spazi vuoti.

Ad esempio, per aggiungere l'utente noviello al gruppo games, dovresti eseguire il seguente comando:

sudo usermod -a -G games noviello

Usa sempre l'opzione -a (aggiungi) quando aggiungi un utente a un nuovo gruppo. Se ometti l'opzione -a, l'utente verrà rimosso dai gruppi non elencati dopo l'opzione -G.

Se l'utente o il gruppo non esiste, il comando ti avviserà.

Cambiare il gruppo primario di un utente

Per modificare il gruppo principale di un utente, invoca il comando usermod con l'opzione -g seguita dal nome del gruppo e dal nome utente:

sudo usermod -g GROUP USER

Nell'esempio seguente, cambiamo il gruppo principale dell'utente noviello in developers:

usermod -g developers noviello

Ogni utente può appartenere esattamente a un gruppo primario e zero o più gruppi secondari.

Modificare le informazioni di un utente

Per modificare le informazioni GECOS (il nome completo dell'utente), eseguire il comando con l'opzione -c seguita dal nuovo commento e nome utente:

usermod -c "GECOS Comment" USER

Ecco un esempio che mostra come aggiungere ulteriori informazioni all'utente noviello:

usermod -c "Test User" noviello

Queste informazioni vengono memorizzate nel file /etc/passwd.

Modificare la Home Directory di un utente

Sulla maggior parte dei sistemi Linux, le directory home dell'utente prendono il nome dal nome dell'utente e vengono create sotto la directory /home.

Se, per qualche motivo, vuoi cambiare la home directory dell'utente, invoca il comando usermod con l'opzione -d seguita dal percorso assoluto della nuova home directory e dal nome dell'utente:

usermod -d HOME_DIR USER

Per impostazione predefinita, il comando non sposta il contenuto della directory home dell'utente in quella nuova. Per spostare il contenuto, utilizza l'opzione -m. Se la nuova directory non esiste già, viene creata:

usermod -d HOME_DIR -m USER

Ecco un esempio che mostra come cambiare la directory home dell'utente www-data in /var/www:

usermod -d /var/www www-data

Modificare laa shell predefinita dell'utente

La shell predefinita è la shell che viene eseguita dopo aver effettuato l'accesso al sistema. Per impostazione predefinita, sulla maggior parte dei sistemi Linux, la shell predefinita è impostata su Bash Shell.

Per modificare la shell predefinita dell'utente, eseguire il comando con l'opzione -s seguita dal percorso assoluto della shell e dal nome dell'utente:

usermod -s SHELL USER

Nell'esempio seguente, stiamo cambiando la shell utente in Zsh:

sudo usermod -s /usr/bin/zsh noviello

Puoi scoprire quali shell sono disponibili sul tuo sistema visualizzando il contenuto del file /etc/shells.

Modificare l'UID di un utente

UID (l'identificatore utente) è un numero assegnato a ciascun utente. Viene utilizzato dal sistema operativo per fare riferimento a un utente.

Per modificare l'UID dell'utente, richiamare il comando con l'opzione -u seguita dal nuovo UID e dal nome dell'utente:

usermod -u UID USER

L'esempio seguente mostra come modificare il numero "UID" in "1050":

sudo usermod -u 1050 noviello

L'UID dei file di proprietà dell'utente che si trovano nella directory home dell'utente e il file della mailbox dell'utente verranno modificato automaticamente. La proprietà di tutti gli altri file deve essere modificata manualmente.

Modificare il nome utente

A volte potresti voler cambiare il nome di un utente esistente. L'opzione -l viene utilizzata per modificare il nome utente:

usermod -l NEW_USER USER

Nell'esempio che segue, stiamo rinominando l'utente noviello ad alice:

sudo usermod -l noviello alice

Quando si modifica il nome utente, si potrebbe anche voler cambiare la directory home dell'utente per riflettere il nuovo nome utente.

Impostare una data di scadenza dell'utente

La data di scadenza è la data in cui l'account utente verrà disabilitato. Per impostare la data di scadenza dell'utente, utilizzare l'opzione -e:

sudo usermod -e DATE USER

La data di scadenza deve essere impostata utilizzando il formato YYYY-MM-DD.

Ad esempio, per disabilitare l'utente noviello su 2022-02-21, dovresti eseguire il seguente comando:

sudo usermod -e "2022-02-21" noviello

Per disabilitare la scadenza di un account, imposta una data di scadenza vuota:

sudo usermod -e "" noviello

Utilizza il comando chage -l per visualizzare la data di scadenza dell'utente:

sudo chage -l noviello
Last password change					: Jul 24, 2018
Password expires					: never
Password inactive					: never
Account expires						: never
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

La data di scadenza è memorizzata nel file /etc/shadow.

Bloccare e sbloccare un account utente

L'opzione -L ti consente di bloccare un account utente:

usermod -L USER

I comandi inseriranno un punto esclamativo (!) davanti alla password crittografata. Quando il campo della password nel file /etc/shadow contiene un punto esclamativo, l'utente non sarà in grado di accedere al sistema utilizzando l'autenticazione della password. Altri metodi di accesso, come l'autenticazione basata su chiave o il passaggio di utente, sono comunque consentiti. Se vuoi bloccare l'account e disabilitare tutti i metodi di accesso, devi anche impostare la data di scadenza su 1.

I seguenti esempi mostrano come bloccare l'utente noviello:

sudo usermod -L noviello
sudo usermod -L -e 1 noviello

Per sbloccare un utente, esegui usermod con l'opzione -U:

usermod -U USER

Conclusione

Ti abbiamo mostrato come utilizzare il comando usermod per impostare le informazioni sull'account utente.