Ablaufzeit für Kennwort abrufen


16

Lassen Sie mich Folgendes vorwegnehmen: Ich habe KEINEN Root-Zugriff.

Ich wurde vor kurzem von meinem Konto gesperrt, weil ich nicht wusste, dass der Ablauf des Passworts bald abläuft. Ich möchte meinem Startskript eine Prüfung hinzufügen, die die Uhrzeit prüft und anzeigt, damit ich weiß, wann sie sich nähert.

Gibt es einen Befehl oder eine Möglichkeit, den Zeitstempel zu erhalten, wenn mein Benutzerkennwort abläuft?

Antworten:


16

Sie sollten in der Lage sein, diese Informationen aus dem chageDienstprogramm abzurufen. Für die Ausführung im Listenmodus ist root nicht erforderlich.

Hinweis: Dies funktioniert höchstwahrscheinlich nur bei lokaler passwdAuthentifizierung. Ich weiß nicht, ob es möglich ist, mit Authentifizierungsmodi zu arbeiten, bei denen keine Anmeldeinformationen in die passwd/ shadow-Dateien eingefügt werden. Ich vermute, diese Lösungen stellen ihre eigenen Tools zur Verfügung, kennen sie aber nicht.

$ 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

Ich habe das mit einem Quick Awk verwendet, um das Ablaufdatum meines Passworts beim Anmelden anzuzeigen.


Seltsamerweise erhalte ich eine Fehlermeldung: Unbekannter Benutzer. Ich habe sogar versucht whoami | xargs chage -l, mich zu vergewissern, dass ich offensichtlich nichts falsch gemacht habe.
Steveo225

Was kehrt whoami zurück und was tut er grep $(whoami) /etc/password?
Mat

Dies scheint nur zu funktionieren, wenn der Benutzer lokal ist (nicht in LDAP oder einer anderen Datenbank).
Patrick

@Patrick: Sie haben höchstwahrscheinlich Recht, und ich habe keinen Zugriff auf Computer mit dieser Art von Authentifizierungssetup. Kann also keine zusätzlichen Informationen liefern.
Mat

whoamigibt meinen korrekten Benutzernamen zurück, aber ich glaube, dass das System LDAP verwendet.
Steveo225

2

In ldap machen Sie so etwas wie:

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

0

Von hier chageaus können Sie mehrere Änderungen vornehmen und die Anmeldedaten wie folgt erfahren ...

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

und wenn du root-zugriff hast dann kannst du deine passwortablaufzeit einfach bearbeiten ..

vim /etc/login.defs

einfach die vlaues unten einstellen ...

PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_WARN_AGE 7

Es kann dir helfen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.