Я бы не запускал приложение полный рабочий день от имени пользователя root, но вы можете захотеть узнать, как сделать setuid вашего приложения root или setuid для некоторого идентификатора, который может стать root, используя что-то вроде sudo для определенных приложений. Возможно, вы сможете настроить учетную запись, которая не может войти в систему, использовать setuid для изменения идентификатора вашей программы (временно, когда это необходимо) и настроить sudo так, чтобы не запрашивать пароль, но всегда разрешать доступ к этой учетной записи для конкретных задач.
Таким образом, ваша программа не имеет специальных привилегий при нормальной работе, только повышает свои привилегии, когда это необходимо, и sudo ограничивает запуск только определенных программ.
Прошло некоторое время с тех пор, как я много занимался разработкой для Unix, поэтому я не совсем уверен, возможно ли настроить sudo, чтобы не запрашивать пароль (или даже если есть API для него), но как Откат вы можете включить setuid для root только при необходимости.
[EDIT] Похоже, что sudo имеет режим NOPASSWD, поэтому я думаю, что он должен работать, поскольку вы запускаете программы как внешние команды.