Just to make it completely clear. The Gadgetron does not need root. Neither does the web_app that used to start it (written in Python) and but in the the container things run as root. The python script does not negotiate low ports or any such thing that requires root privileges. But in the container, it really doesn't matter so much. It is, running as root in a containerized environment, so unless you map you system file system in there, it is pretty well contained.
In the mean time, we have eliminated the web_app and supervisord now starts the Gadgetron directly (
https://github.com/gadgetron/gadgetron/blob/master/docker/supervisord.conf), so you can simple change the user there. Please update to a newer version. If you are not running it in a Docker container (which is probably what I would recommend if you are using Matlab), you can simply start the Gadgetron with whatever user you would like.
Just to make it 100% clear, there is no need, whatsoever, for running the Gadgetron as root. You can run it as whatever user you would like.
Hope this helps.
Michael