Uzyskanie hasła wygasa

16

Pozwólcie, że przedstawię to następująco: NIE mam dostępu do roota.

Niedawno zostałem zablokowany z mojego konta, ponieważ nie wiedziałem, że wygaśnięcie hasła zbliża się, a następnie upłynęło. Chcę dodać czek do mojego skryptu uruchamiania, który sprawdza i wyświetla czas, dzięki czemu wiem, kiedy się zbliża.

Czy istnieje polecenie lub sposób uzyskania znacznika czasu, kiedy wygasa moje hasło użytkownika?

steveo225
źródło

Odpowiedzi:

16

Powinieneś być w stanie uzyskać te informacje z chagenarzędzia. Nie wymaga rootowania do działania w trybie listy.

Uwaga: najprawdopodobniej działa to tylko w przypadku lokalnego passwduwierzytelniania opartego na danych. Nie wiem, czy można go uruchomić w trybach uwierzytelniania, które nie umieszczają danych logowania w plikach passwd/ shadow. Domyślam się, że te rozwiązania zapewniają własne narzędzia, ale nie wiem o nich.

$ 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

Użyłem tego z szybkim awk, aby wyświetlić datę wygaśnięcia hasła przy logowaniu.

Mata
źródło
Dziwne, pojawia się błąd: nieznany użytkownik. Próbowałem nawet whoami | xargs chage -lupewnić się, że nie robię czegoś wyraźnie złego.
steveo225
Co zwraca Whoami i co robi grep $(whoami) /etc/password?
Mat.
Wydaje się, że działa to tylko wtedy, gdy użytkownik jest lokalny (nie ma go w LDAP ani innej bazie danych).
Patrick
@Patrick: najprawdopodobniej masz rację i nie mam dostępu do komputerów z tym rodzajem konfiguracji uwierzytelniania. Dlatego nie mogę podać dodatkowych informacji.
Mat
whoamizwraca moją prawidłową nazwę użytkownika, ale wydaje mi się, że system używa LDAP.
steveo225
2

W ldap zrobisz coś takiego:

ldapsearch -x -Z  uid=$1 pwdChangedTime | \
          grep -vE '^#|^$' | grep pwdChangedTime | awk '{print $2}'
maikcat
źródło
0

Od chagemożna zrobić wiele zmian i może znać szczegóły logowania następująco ...

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

a jeśli masz dostęp do rootowania, możesz zmienić czas wygaśnięcia hasła, po prostu edytuj ..

vim /etc/login.defs

po prostu skonfiguruj poniższe vlaues ...

PASS_MAX_DAYS 30
PASS_MIN_DAYS 1
PASS_WARN_AGE 7

To może ci pomóc

Vinood NK Maheshwari
źródło