Para mostrar sua última alteração de senha, use passwd
passwd -S | awk '{print $3}'
ou para um nome de usuário diferente
sudo passwd -S user_name | awk '{print $3}'
Portanto, você pode fazer um loop pelos nomes de usuário em /etc/passwd
em seu script e mostrar os timestamps de cada usuário, talvez para usuários com um ID > = 1000.
while inotifywait -e attrib /etc/shadow; do
awk -F: '($3 >= 1000) {print $1}' /etc/passwd | xargs -I{} passwd -S {} | awk '{print $1,$3}'
done
Para determinar quais itens foram alterados exatamente, você precisa salvar a saída de awk …
e comparar com a próxima partida.
Exemplo
% passwd -S | awk '{print $3}'
07/14/2015
% passwd
Changing password for aboettger.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
% passwd -S | awk '{print $3}'
10/01/2015
ou para uma conta de usuário concreta
% sudo passwd -S root | awk '{print $3}'
05/29/2015
ou para todos os usuários
% awk -F: '($3 >= 1000) {print $1}' /etc/passwd | xargs -I{} passwd -S {} | awk '{print $1,$3}'
passwd: You may not view or modify password information for nobody.
aboettger 10/01/2015