pam_exec apontou na direção certa, mas setuid é um mau conselho; a maioria (todos?) dos Linuxes modernos a ignoram em scripts shell e a respeitam apenas em arquivos executáveis binários.
Seria um problema se o script fosse executado (como root) em momentos diferentes do login?
Se estiver tudo bem para ele rodar mais do que o estritamente necessário, você pode criar um script wrapper que é executado em cada login ssh com permissões de usuário que usa sudo (sem senha) para executar seu script como root.
Isso, no entanto, significa que os usuários também podem executá-lo manualmente (como root) quantas vezes quiserem.
Para configurar isso, adicione esta linha ao /etc/pam.d/sshd
account optional pam_exec.so /etc/pam.d/LoginWrapper.sh
Em seguida, crie o arquivo /etc/pam.d/LoginWrapper.sh com o conteúdo:
#!/bin/bash
if [[ $EUID -ne 0 ]]; then # Execute only when a user other than root logs in
/usr/bin/sudo /path/to/your/root_script.sh
fi
Note que se o seu sudo estiver em um caminho diferente, você deve atualizá-lo acima.
Agora, em / etc / sudoers, adicione a linha:
ALL ALL=(root) NOPASSWD: /path/to/your/root_script.sh