executando o script pam_exec após o login ser concluído

1

Estou analisando o comando lastlog em um arquivo personalizado quando um usuário efetua login para uso com outro aplicativo que monitora logins SSH.

Em /etc/pam.d/sshd incluí a linha e a parte inferior:

session optional pam_exec.so seteuid /usr/local/bin/run_on_login.sh

Este trabalho tem uma grande desvantagem. O script é executado ANTES de /var/log/lastlog ou /var/log/wtmp ser atualizado. Eu presumo porque um login bem-sucedido não é considerado completo até que o script seja executado.

Eu tentei colocar a linha em /etc/pam.d/login e parece não fazer diferença.

Existe uma maneira de executar um script pam_exec após a conclusão do processo de login completo, incluindo a gravação nos registros?

    
por Devin 15.06.2018 / 17:54

1 resposta

0

Consegui resolver isso com o% inicial /usr/local/bin/run_on_login.sh fork em outro script que é executado como um processo em segundo plano, aguarda alguns segundos e depois analisa o comando 'last'.

No exemplo, pam_exec executa este script:

#!/bin/bash
# /usr/local/bin/run_on_login.sh

nohup /usr/local/bin/parse_last.sh >/dev/null 2>&1 &

Que aciona esses scripts:

#!/bin/bash
# /usr/local/bin/parse_last.sh

sleep 5

# (truncated for brevity)
last -iF | head -n 50 | awk '{print "something"}'
    
por 15.06.2018 / 19:30

Tags