Se pensate che le operazioni riguardo gli utenti siano solo: creazione, cancellazione e cambio password vi sbagliate di grosso, nel sistema standard Gnu/Linux di autenticazione ed autorizzazione degli utenti esistono degli interessanti flag che riguardano l’eta di un account.
Questi parametri sono usualmente ignorati, ma possono rivelarsi molto utili in situazioni particolari, o per aiutare a rispettare policy interne sull’utilizzo degli account personali.
Tutti questi parametri sono conservati nel file /etc/shadow e sono consultabili e modificabili tramite il comando chage
chage
chage modifica il numero di giorni tra i cambiamenti della password e la data di ultima modifica della password. Queste informazioni vengono usate dal sistema per determinare quando un utente deve cambiare la propria password. Il comando chage è limitato all’utente root, tranne che per l’opzione -l, che può essere utilizzata da un utente senza privilegi per determinare quando la sua password o account è in scadenza.
Sintassi base:
chage [-m mingiorni] [-M maxgiorni] [-d ultimogiorno] [-I inattivo] [-E datascadenza] [-W giorniavvertimento] user
Opzioni: -d, --ultimogiorno LAST_DAY Imposta la data dell'ultimo cambio password a LAST_DAY -E, --datascadenza EXPIRE_DATE Imposta la data della scadenza dell'account a EXPIRE_DATE -h, --help mostra messaggio di aiuto ed esce -I, --inactive INACTIVE imposta il numero di giorni dopo la scadenza dopo i quali l'account diventa inattivo -l, --list mostra le informazioni sull'età di un account -m, --mindays MIN_DAYS Imposta il numero minimo di giorni che devono passare dopo che si è cambiata la password -M, --maxdays MAX_DAYS Imposta il numero massimo di giorni che possono passare dopo che si è cambiata la password -W, --warndays WARN_DAYS Imposta l'allarme sulla scadenza a WARN_DAYS giorni |
Caratteristiche tipiche di un utente su un desktop:
# chage -l linuxaria Last password change : Jan 09, 2011 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 |
Fondamentalmente si hanno le informazioni sul giorno dell’ultimo cambiamento della password e tutte gli altri parametri non sono impostati.
Cambiare la password
Se cambio la password oggi ottengo:
# chage -l linuxaria Last password change : Jul 25, 2011 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 |
Impostare il numero massimo di giorni per una password
La mia azienda ha una politica sugli utenti, devono modificare la propria password ogni 90 giorni (non chiedetemi se mi piace o se penso che sia utile, per favore), quindi ogni utente sul nostro server ha una cosa del genere:
#chage -M 90 linuxaria # chage -l linuxaria Last password change : Jul 25, 2011 Password expires : Oct 23, 2011 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7 |
Ho cambiato il mio utente desktop con il flag -M, ed ora ci sono 2 cambiamenti:
La scadenza della password ora ha un valore e il numero massimo di giorni tra il cambiamento della password è impostato a 90.
Ora che abbiamo una data di scadenza assume importanza anche il valore di “Number of days of warning before password expires”, che di default è impostato a 7, questo vuol dire che se mi collegherò ad un server 4 giorni prima della scadenza otterrò una cosa simile a questa:
# ssh linuxaria@myserver linuxaria@myserver's password: Warning: your password will expire in 4 days |
se non si modifica la password prima della data di scadenza sarete costretti dal sistema in fase di login a cambiarla, a meno che non si sia impostato anche un valoreper “Password inactive”, questo valore comunica al sistema che se non si modifica la password dopo X giorni dopo che è scaduto l’account deve essere bloccato.
Nell’esempio questo valore è impostato su mai.
Impostare una data di scadenza
Ho usato questa opzione in passato, è utile quando si ha un esterno che deve accedere al sistema per 1 settimana o mese, e volete essere sicuri che dopo una certa data non possa accedere più, questo flag consente di impostare questa data dalla fase di creazione, quindi non dovrete ricordarvi di chiudere l’account manualmente.
# chage -E "2011-07-31" linuxaria # chage -l linuxaria Last password change : Jul 25, 2011 Password expires : Oct 23, 2011 Password inactive : never Account expires : Jul 31, 2011 Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7 |
In questo esempio il mio account non funzionerà più dopo il 31 Luglio 2011.
Un utente il cui account è bloccato deve contattare l’amministratore di sistema prima di poter utilizzare nuovamente il sistema.
Rimuovere le limitazioni
Ok, è giunto il momento di tornare alla configurazione originale per il mio utente:
-m 0 imposterà il numero minimo di giorni tra la modifica della password a 0
-M 99999 imposterà il numero massimo di giorni tra la modifica della password a 99999
-I -1 imposta la “Password inattivo” a mai.
-E -1 imposta “Scadenza account” a mai.
# chage -m 0 -M 99999 -I -1 -E -1 linuxaria # chage -l linuxaria Last password change : Jul 25, 2011 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 |
Popular Posts:
- Come proteggere Apache con Fail2ban
- Nightingale un bellissimo riproduttore audio per Linux
- (English) Linux shell: Dfc – Check your disk space with style
- Livarp – Una distribuzione Linux molto leggera
- Come convertire facilmente i Video di Youtube ad MP3 su GNU/Linux
Find me on Google+

Thanks for the article. I wasn’t aware of that command.