Извлечь даты из /etc/shadow

Извлечь даты из /etc/shadow

В файле /etc/shadowесть несколько полей дат, которые выражены как количество дней с 1 января 1970 года. Есть ли простой способ получить список пользователей и календарную дату последнего изменения пароля, а также срок его действия?

Ссылка:тень человека(5)

решение1

chage -l <username>

Пример вывода:

Last password change                                    : Dec 17, 2015
Password expires                                        : Mar 16, 2016
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 7
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 14

решение2

сообщить статус пароля для указанной учетной записиpasswd -S username

for user in $(cut -d: -f1 /etc/passwd); do sudo passwd -S $user; done

решение3

for n in $(sudo cat /etc/shadow | awk '{FS=":";print $3}'); do date -d "01/01/1970 +${n}days" +%F; done 

Чтобы избежать награды за бесполезное использование кошки:

for n in $(sudo awk '{FS=":";print $3}' /etc/shadow); do date -d "01/01/1970 +${n}days" +%F; done 

решение4

Это выводит информацию об обновлении пароля для каждого пользователя:

Прочитайте файл /etc/passwd >> проанализируйте каждого пользователя >> выполните команду chage -l для каждого пользователя

for user in $(cut -d: -f1 /etc/passwd); do echo -e "\n $user \n" && chage -l $user; done

Связанный контент