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.