Ssh login hook?

14

Existe uma maneira de executar um script / comando toda vez que um usuário se conecta usando o ssh? Pode ser configurado globalmente (por exemplo, executar o script quando qualquer login de usuário)?

Me deparei com essa pergunta no Identica, mas ainda não há resposta e gostaria de saber de qualquer maneira.

    
por phunehehe 14.02.2011 / 16:28

2 respostas

11

Para todos os usuários ou um usuário específico? Para um único usuário, defina-o no arquivo .bashrc ; Para todos os usuários, confira pam_exec .

Se os usuários estiverem vindo de sshd , você desejará adicionar a seguinte linha a /etc/pam.d/sshd ; outros arquivos dependendo da origem:

session optional pam_exec.so seteuid  /path/to/my/hook.sh

Para fins de teste, o módulo está incluído como optional , para que você ainda possa efetuar login se falhar. Depois de ter certeza de que funciona, você pode alterar optional para required . Então, o login não será possível, a menos que a execução do seu script de gancho seja bem-sucedida.

Observação: Como sempre, ao alterar a configuração de login, deixe um shell de backup aberto em segundo plano e teste o login a partir de um novo terminal.

    
por 14.02.2011 / 16:31
6

existe outra maneira que influencia apenas usuários que usam ssh e não locais (o que pode ser melhor em situações de emergência)

veja os trechos da página man do ssh abaixo.

neste caso, os usuários geralmente podem modificar os arquivos em si (um pouco como .bashrc)

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

e isso é global e não é modificável pelo usuário normal

 /etc/sshrc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.
    
por 14.02.2011 / 18:36

Tags