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 sudo
accesso 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.