A menos que haja algo na configuração su que permita ao usuário executar esses comandos para executar comandos como emailuser com su , o comando su emailuser -c … solicitará a senha de emailuser . O uso de sudo é sempre explícito.
Dadas as regras do sudo, você provavelmente queria
sudo su emailuser -c …
Mas suas regras de sudo são estranhas: não adianta autorizar sudo a executar su para outro usuário. Altere-os para especificar o usuário de destino e esqueça su .
scriptuser ALL = (adminuser) NOPASSWD: /path/to/a/script/script ""
scriptuser ALL = (emailuser) NOPASSWD: mutt
Observe que, como o Mutt permite escudos do shell, restringir o comando como emailuser ao mutt realmente não aumenta a segurança, mas pode reduzir o uso acidental. Em seu script, use
sudo -H -u emailuser mutt -e 'set content_type=text/html' -s 'Your stuff is ready' -- ${WHOEVER_PARAM_RECIPIENT} < /tmp/emailingstuff.html
Como você está chamando sudo de um script, verifique se o sinal requiretty está desativado no arquivo sudoers (está desativado por padrão, mas alguma distribuição o adiciona, apesar das circunstâncias extremamente limitadas em que poderia melhorar a segurança de forma consciente).