Я знаю, что getenv () возвращает значение указанной переменной среды текущего пользователя, но мой код требует привилегий root, поэтому getenv () будет использовать только переменные среды sudo.Я также знаю, что SUDO_USER сообщает, какой пользователь вызывает sudo. Это пользовательская среда, которую я хочу использовать для getenv ().
char* gnome_env_var = getenv("GDMSESSION"); //returns null as not found in sudo env
char* usr = getenv("SUDO_USER");
Есть ли способ получить значение переменной среды для зарегистрированногопользователь, а не среда sudo?
EDIT Хорошо, так что я слышал, что набор переменных среды уникален для каждого процесса, а не пользователя, и использование sudo для вызоваПроцесс с привилегиями root вызывает execve, который может создать совершенно новый набор переменных среды для этого процесса.Итак, перефразируя, есть ли способ кроме перебора файлов sudoers и в текущем процессе поиска переменных окружения вызывающего процесса?
Мне особенно нужна переменная среды GDMSession.