小编P4L*_*P4L的帖子

在Linux C++中,如何读取指定用户的环境变量?

我知道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");
Run Code Online (Sandbox Code Playgroud)

有没有办法可以为登录用户获取环境变量的值,而不是sudo环境?

编辑 好的,所以我听到的是环境变量集对于每个进程都是唯一的,而不是用户和使用sudo来调用具有root权限的进程调用execve,这可以为该进程创建一组全新的环境变量.那么换句话说,除了弄乱sudoers文件之外,还有一种方法,在当前流程中,找到调用进程的环境变量?

我特别需要GDMSession环境变量.

c++ sudo environment-variables

1
推荐指数
1
解决办法
2055
查看次数

标签 统计

c++ ×1

environment-variables ×1

sudo ×1