Jul 252011
 

terminal 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 giorniavvertimentouser

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:

flattr this!

  One Response to “usi di chage per controllare i vostri utenti su Linux”

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

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>