La domanda
Come richiedere a un utente di modificare la propria password al successivo accesso? L'utente deve essere obbligato a modificare la password per la prima volta solo dopo che la password è stata reimpostata.
1. Usando il comando cambia
Questo può essere fatto usando il comando chage con -d opzione. Come da pagina man di chage :
# man chage .... -d, --lastday LAST_DAY Set the number of days since January 1st, 1970 when the password was last changed. The date may also be expressed in the format YYYY-MM-DD (or the format more commonly used in your area). If the LAST_DAY is set to 0 the user is forced to change his password on the next log on. ...
Per impostare la data dell'ultima modifica della password dell'utente su 0, utilizzare il comando seguente:
# chage -d 0 [username]
Ad esempio, per impostare la data dell'ultima modifica della password dell'utente (testuser) su 0 con il comando chage :
# chage -d 0 testuser
2. Utilizzo del comando passwd
Un altro modo per forzare l'utente a modificare la password consiste nell'usare il comando passwd con -e opzione. L'opzione -e fa scadere la password dell'utente corrente costringendo l'utente a impostarne una nuova al prossimo accesso. Dalla pagina man del comando passwd:
-e This is a quick way to expire a password for an account. The user will be forced to change the password during the next login attempt. Available to root only.
Per far scadere la password corrente e forzare l'utente a impostare una nuova password, utilizzare il comando seguente:
# passwd -e [username]
Se l'utente non ricorda la sua vecchia password, forniscigli una password temporanea con passwd prima di eseguire il comando precedente.
Verifica
La prossima volta che l'utente si autentica (con la sua vecchia password), sarà costretto a inserire una nuova password.
# ssh testuser@localhost testuser@localhost's password: You are required to change your password immediately (root enforced) WARNING: Your password has expired. You must change your password now and login again! Changing password for user testuser. Changing password for testuser. (current) UNIX password: New password: Retype new password: passwd: all authentication tokens updated successfully. Connection to localhost closed.
Per verificare se la password corrente è scaduta o meno usa il comando chage .
# chage -l [username]