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.