sudoers NOPASSWD: sudo: no tty present and no askpass program specified
sudo
permissions are about the user/group you are changing from not the user you are changing to.
So are those permission lines are letting the testuser
user and the testgroup
group run any command (as anyone) without a password.
You need to give permission to the user running the script to run commands as the testuser
user for what you want.
Assuming that's what you meant to allow that is.
That error occurs when your sudoers file specifies requiretty
. From the sudoers
manpage:
requiretty If set, sudo will only run when the user is logged in to a real tty. When this flag is set, sudo can only be run from a login session and not via other means such as cron(8) or cgi-bin scripts. This flag is off by default.
To fix your error, remove requiretty
from your sudoers file.