Моей программе требуются некоторые локальные переменные среды при запуске от имени пользователя root для выполнения определенных задач. Можно ли было бы написать подпрограмму, которая может изменять sudoers пользователей для сохранения этих переменных? Он будет работать не только на моем персональном компьютере, он будет работать на компьютерах многих пользователей. Переменные среды, которые мне нужны, в основном DESKTOP_SESSION или любой из его вариантов и QT_X11_NO_MITSHM
Написание подпрограммы, изменяющей системные файлы (/etc/sudoers
или любой другой) всякий раз, когда ваша программа запускается, - плохая идея дизайна.
Более изящное решение состоит в том, что при сборке и упаковке своей программы для определенных дистрибутивов Linux, таких как, например, RHEL / CentOS 6 и 7, Ubuntu 16 и 18, вы используете и устанавливаете фрагмент конфигурации drop in /etc/sudoers.d/program-name
Это обеспечит применение определенных необходимых вам настроек sudo (например, защиты определенных переменных среды) при каждом запуске вашей программы.