Obtention du délai d'expiration du mot de passe

16

Permettez-moi de faire ceci avec: Je n'ai PAS accès root disponible.

J'ai récemment verrouillé mon compte parce que je ne savais pas que l'expiration du mot de passe approchait, puis s'est écoulée. Je veux ajouter une vérification à mon script de démarrage qui vérifie et affiche l'heure afin que je sache quand elle approche.

Existe-t-il une commande ou un moyen d'obtenir l'horodatage lorsque mon mot de passe utilisateur expirera?

steveo225
la source

Réponses:

16

Vous devriez pouvoir obtenir ces informations à partir de l' chageutilitaire. Ne nécessite pas que root s'exécute en mode liste.

Remarque: cela ne fonctionne probablement que pour l' passwdauthentification locale . Je ne sais pas si cela peut fonctionner avec des modes d'authentification qui ne mettent pas les informations de connexion dans les fichiers passwd/ shadow. Je suppose que ces solutions fournissent leurs propres outils, mais je n'en sais rien.

$ chage -l test                       
Last password change                                : Apr 17, 2012
Password expires                                    : Apr 27, 2012
Password inactive                                   : never
Account expires                                     : May 20, 2012
Minimum number of days between password change      : 0
Maximum number of days between password change      : 10
Number of days of warning before password expires   : 7

Je l'ai utilisé avec un awk rapide pour afficher la date d'expiration de mon mot de passe lors de la connexion.

Tapis
la source
Bizarre, j'obtiens une erreur: utilisateur inconnu. J'ai même essayé whoami | xargs chage -lde m'assurer que je ne faisais pas quelque chose de mal.
steveo225
Que revient whoami et que fait grep $(whoami) /etc/password-il?
Mat
Cela semble fonctionner uniquement si l'utilisateur est local (pas dans LDAP ou autre base de données).
Patrick
@Patrick: vous avez très probablement raison, et je n'ai pas accès aux machines avec ce type de configuration d'authentification. Je ne peux donc pas fournir d'informations supplémentaires.
Mat
whoamine renvoie pas mon nom d'utilisateur correct, mais je crois que le système utilise LDAP.
steveo225
2

Dans ldap, vous ferez quelque chose comme:

ldapsearch -x -Z  uid=$1 pwdChangedTime | \
          grep -vE '^#|^$' | grep pwdChangedTime | awk '{print $2}'
maikcat
la source
0

De chagevous pouvez effectuer plusieurs modifications et connaître les informations de connexion comme suit ...

Usage: chage [options] [LOGIN]

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

et si vous avez un accès root, vous pouvez modifier le délai d'expiration de votre mot de passe, il suffit de le modifier.

vim /etc/login.defs

il suffit de configurer les vlaues ci-dessous ...

PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_WARN_AGE 7

Cela peut vous aider

Vinood NK Maheshwari
la source