usermod è un’utilità a riga di comando che permette di modificare le informazioni di login di un utente.

Questo articolo copre come usare il comando usermod per aggiungere un utente a un gruppo, cambiare la shell di un utente, il nome di login, la home directory e altro.

Comando usermod #

La sintassi del comando usermod ha la seguente forma:

usermod USER

Solo root o utenti con sudoaccesso possono invocare usermod e modificare un account utente. Al successo, il comando non mostra alcun output.

Aggiungi un utente a un gruppo #

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

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

usermod -a -G GROUP USER

Se vuoi aggiungere l’utente a più gruppi contemporaneamente, specifica i gruppi dopo l’opzione -G separati con , (virgole) senza spazi bianchi.

Per esempio, per aggiungere l’utente linuxize al gruppo games, dovrete eseguire il seguente comando:

sudo usermod -a -G games linuxize

Utilizzate sempre l’opzione -a (append) quando aggiungete un utente a un nuovo gruppo. Se ometti l’opzione -a, l’utente sarà 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 dell’utente #

Per cambiare il gruppo primario di un utente, invocate il comando usermod con l’opzione -g seguita dal nome del gruppo e dal nome utente:

sudo usermod -g GROUP USER

Nel seguente esempio, stiamo cambiando il gruppo primario dell’utente linuxize in developers:

usermod -g developers linuxize

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

Modificare le informazioni dell’utente #

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

usermod -c "GECOS Comment" USER

Ecco un esempio che mostra come aggiungere ulteriori informazioni all’utente linuxize:

usermod -c "Test User" linuxize

Queste informazioni sono memorizzate nel file /etc/passwd.

Modificare una directory home dell’utente #

Sulla maggior parte dei sistemi Linux, le directory home dell’utente sono chiamate con il nome dell’utente e create sotto la directory /home.

Se, per qualche ragione, volete cambiare la home directory dell’utente invocate 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

Di default, il comando non sposta il contenuto della home directory dell’utente in quella nuova. Per spostare il contenuto, usate 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 home directory dell’utente www-data in /var/www:

usermod -d /var/www www-data

Modificare la shell predefinita di un utente #

La shell predefinita è la shell che viene eseguita dopo il login al sistema. Per impostazione predefinita, sulla maggior parte dei sistemi Linux, la shell predefinita è impostata su Bash Shell.

Per cambiare 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 dell’utente in Zsh:

sudo usermod -s /usr/bin/zsh linuxize

È possibile scoprire quali shell sono disponibili sul vostro sistema visualizzando il contenuto del file /etc/shells.

Modificare un UID utente #

L’UID (l’identificatore utente) è un numero assegnato ad ogni utente. È usato dal sistema operativo per riferirsi a un utente.

Per cambiare l’UID dell’utente, invocate il comando con l’opzione -u seguita dal nuovo UID e dal nome dell’utente:

usermod -u UID USER

L’esempio seguente mostra come cambiare il numero “UID” in “1050”:

sudo usermod -u 1050 linuxize

L’UID dei file di proprietà dell’utente e situati nella home directory dell’utente, e il file della casella postale dell’utente saranno cambiati automaticamente. La proprietà di tutti gli altri file deve essere cambiata manualmente.

Modificare un nome utente #

Anche se non molto spesso, a volte potresti voler cambiare il nome di un utente esistente. L’opzione -l è usata per cambiare il nome utente:

usermod -l NEW_USER USER

Nell’esempio qui sotto, stiamo rinominando l’utente linuxize in lisa a “1050”:

sudo usermod -l linuxize lisa

Quando cambi il nome utente, potresti anche voler cambiare la home directory 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, usa l’opzione -e:

sudo usermod -e DATE USER

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

Per esempio, per disabilitare l’utente linuxize su 2022-02-21, dovresti eseguire il seguente comando:

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

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

sudo usermod -e "" linuxize

Usa il comando chage -l per visualizzare la data di scadenza dell’utente:

sudo chage -l linuxize
Last password change: Jul 24, 2018Password expires: neverPassword inactive: neverAccount expires: neverMinimum number of days between password change: 0Maximum number of days between password change: 99999Number of days of warning before password expires: 7

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

Blocco e sblocco di un account utente #

L’opzione -L ti permette di bloccare un account utente:

usermod -L USER

I comandi inseriranno un punto esclamativo (!) davanti alla password criptata. Quando il campo della password nel file /etc/shadow contiene un punto esclamativo, l’utente non sarà in grado di accedere al sistema usando l’autenticazione con password. Altri metodi di login, come l’autenticazione basata sulla chiave o il passaggio all’utente sono ancora permessi. Se vuoi bloccare l’account e disabilitare tutti i metodi di login, devi anche impostare la data di scadenza a 1.

I seguenti esempi mostrano come bloccare l’utente linuxize:

sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize

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

usermod -U USER

Conclusione #

Ti abbiamo mostrato come usare il comando usermod per impostare informazioni sull’account utente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.