I think this is going to be generic Linux question, but I don't know the answer to it: I am setting up my new Node-Red server which is not a RaspberryPI, but a PC running Debian.
Back in the Rpi days I used to run command from exec with sudo. Here I added my user (which also runs Node-Red) to the sudoer list, so I can run thing like sudo hddtemp /dev/sda after I enter the password. But I am guessing because of this the same command from exec fails.
You need to use sudo visudo
to tell the system that the user can run that command with sudo without the need to enter a password. I always have to look up the syntax. If you Google for visudo you should be able to find examples of how to do it.
As Colin mentions, the "proper" way is to create passwordless sudo exemptions for specific commands.
Here is an example from my own system (the contents of sudo visudo). home is the user running Node-RED. The last line lets the home user run anything under sudo (with a password) but can also use sudo without a password for a specific set of commands
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset,timestamp_timeout=-1
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
home ALL=(ALL) NOPASSWD:/usr/bin/apt update, /usr/bin/apt list --upgradable, \
/usr/bin/apt upgrade, /usr/bin/systemctl status *.service, \
/usr/bin/systemctl restart nrmain, /usr/bin/du -sh /var/lib/influxdb/data/, \
/usr/bin/du -sh /var/lib/influxdb/* \
/usr/sbin/dumpe2fs *, /usr/bin/systemctl show nrmain