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.