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

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximim number of days before password
                                change to MAX_DAYS
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

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 to Przemo Cancel reply

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=""> <s> <strike> <strong>

(required)

(required)

*