Bem, você pode ter /usr/local/bin/test_pam_foo.sh
altere o usuário, pois ele está na variável de ambiente PAM_USER
.
Cuidado com a nota na página man pam_exec
sobre o usuário ter potencialmente controle sobre o ambiente (dependendo de qual serviço o usa (como su
)). Portanto, usar um script provavelmente não é uma boa ideia (mesmo se você corrigir $PATH
e outras variáveis problemáticas, haverá algumas que você não pode fazer nada, como SHELLOPTS ou BASH_ENV para scripts bash).
Melhor seria usar um wrapper para alterar o usuário antes de chamar seu script.