Extrai datas de / etc / shadow

5

O arquivo /etc/shadow tem alguns campos de data que são expressos como o número de dias desde 1º de janeiro de 1970. Existe uma maneira fácil de usar para obter uma lista de usuários e a data do calendário da última alteração de senha, e a expiração?

Ref: sombra do homem (5)

    
por Zoredache 13.04.2012 / 20:10

5 respostas

2

Houve uma resposta que foi excluída, embora um pouco errada, levou-me na direção correta.

Usar o strftime do gawk combinado com alguma aritmética me dá o que eu queria.

cat shadow | gawk -F: '{ print $1 ":" strftime("%Y%m%d",86400*$3) ":" strftime("%Y%m%d",86400*$4)}'

root:20120304:19691231
daemon:20100203:19691231
bin:20100203:19691231
sys:20100203:19691231
    
por 13.04.2012 / 21:14
6
chage -l <username>

Exemplo de saída:

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
    
por 01.01.2016 / 16:28
3

informe o status da senha na conta nomeada passwd -S username

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

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

Isso gera informações de atualização de senha para cada usuário:

Leia o arquivo / etc / passwd > > analisar cada usuário > > execute o comando chage -l em cada usuário

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