Como excutar um comando quando a sessão SSH é fechada?

1

Por exemplo, se eu fechar o Putty ou apenas perder a conexão com a Internet, como fazer com que o servidor execute um comando específico?

A solução de Mikael nos comentários funciona perfeitamente. Obrigado pela ajuda

    
por dynos01 19.06.2017 / 10:45

1 resposta

0

Como o serverfault padroniza minhas respostas aos comentários, copiei a resposta apropriada de este post :

A melhor maneira de fazer isso seria usar o pam.

Em /etc/pam.d você terá vários arquivos, um deles será chamado sshd. Se você quiser apenas afetar o ssh, e não outros logins (como uma GUI ou TTY real), você deseja este arquivo. Se você quiser afetar todos os logins, você vai querer um arquivo 'comum'. O nome deste outro arquivo 'comum' varia por distro, mas você pode rastreá-lo seguindo as instruções include e substack no arquivo sshd até chegar ao arquivo base.

Depois de identificar o arquivo em /etc/pam.d que você deseja usar, adicione uma linha como a seguinte à seção da sessão:

session     optional    pam_exec.so quiet /etc/pam_session.sh

Isso resultará em chamar o /etc/pam_session.sh toda vez que alguém fizer login e logout (seja de forma graciosa ou deselegante).

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:

#!/bin/sh
if [ "$PAM_TYPE" = "close_session" ]; then
  something
fi

(não se esqueça de chmod a + xo script)

    
por 19.06.2017 / 12:04

Tags