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).