Existe uma maneira de executar um script / comando toda vez que um usuário se conectar usando ssh? Ele pode ser configurado globalmente (ou seja, executar o script quando qualquer usuário fizer login)?
Encontrei essa pergunta no Identica, mas ainda não há resposta e gostaria de saber de qualquer maneira.
Para fins de teste, o módulo é incluído como optional, para que você ainda possa efetuar login se falhar. Depois de ter certeza de que funciona, você pode mudar optionalpara required. Então, o login não será possível, a menos que a execução do seu script de gancho seja bem-sucedida.
Nota: Como sempre, quando você altera a configuração de logon, deixe um shell de backup aberto em segundo plano e teste o logon em um novo terminal.
Obrigado, isso parece promissor. Você pode elaborar um pouco mais? Não estou familiarizado com isso.
phunehehe
Suponho que devo adicionar session include pam_exec.so seteuid /path/to/scriptao arquivo /etc/pam.d/system-remote-login. Isso está correto?
phunehehe
De qualquer system-remote-loginou sshd, dependendo de como o usuário está entrando.
Glen Solsberry
Impressionante! Seria ótimo se você editar a resposta para incluir as informações (você sabe, para outras pessoas que as pesquisam).
phunehehe
Nota para as pessoas googling, você também pode colocar esta linha auth optional pam_exec.so /path/to/my/hook.shem /etc/pam.d/common-authter PAM notificá-lo de quaisquer eventos de autenticação que ocorrem. Este programa também pode enviar notificações por push: github.com/benjojo/PushAlotAuth
Nick Sweeting
6
existe outra maneira que influencia apenas os 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 de manual do ssh abaixo.
nesse caso, os usuários geralmente podem modificar os arquivos eles mesmos (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.
session include pam_exec.so seteuid /path/to/script
ao arquivo/etc/pam.d/system-remote-login
. Isso está correto?system-remote-login
ousshd
, dependendo de como o usuário está entrando.auth optional pam_exec.so /path/to/my/hook.sh
em/etc/pam.d/common-auth
ter PAM notificá-lo de quaisquer eventos de autenticação que ocorrem. Este programa também pode enviar notificações por push: github.com/benjojo/PushAlotAuthexiste outra maneira que influencia apenas os 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 de manual do ssh abaixo.
nesse caso, os usuários geralmente podem modificar os arquivos eles mesmos (um pouco como .bashrc)
e isso é global e não modificável pelo usuário normal
fonte
/etc/ssh/sshd_config
(verman sshd_config
para mais detalhes)