Estou efetuando login em um sistema via SSH e gostaria de poder forçar um comando a ser executado no logout, seja um logout intencional (saindo do shell) ou porque minha conexão SSH caiu / foi encerrada. Existe alguma maneira de configurar isso? Meu melhor palpite agora é alterar o shell de login para um programa que intercepte o sinal enviado no fechamento SSH (SIGHUP?) E execute o comando então, mas estou me perguntando se há uma solução mais limpa.
13
Respostas:
A melhor maneira de fazer isso seria usar o pam .
Em
/etc/pam.d
você terá vários arquivos, um deles será chamadosshd
. Se você deseja afetar apenas o ssh, e não outros logons (como uma GUI ou TTY real), você deseja esse arquivo.Se você deseja afetar todos os logons, desejará um arquivo 'comum'. O nome desse outro arquivo 'comum' varia de acordo com a distribuição, mas você pode localizá-lo seguindo as instruções
include
esubstack
nosshd
arquivo até chegar ao arquivo base.Depois de identificar o arquivo
/etc/pam.d
que deseja usar, adicione uma linha como a seguinte àsession
seção:Isso resultará em chamadas
/etc/pam_session.sh
sempre que alguém fizer login e logout (seja graciosa ou não).Agora você só precisa criar
/etc/pam_session.sh
. Abaixo está um exemplo que você pode usar para executar algo sempre que alguém fizer logout:(não se esqueça
chmod a+x
do script)fonte