首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过pkexec执行时缺少环境变量

通过pkexec执行时缺少环境变量
EN

Stack Overflow用户
提问于 2017-03-22 18:41:13
回答 2查看 1.4K关注 0票数 2

如果我在不使用pkexec的情况下执行print os.environ,就会得到许多有用的系统环境变量,但是,一旦执行,它们中的大多数都会消失。我怎么才能用pkexec把他们弄回来?我知道有一个解决办法是用sudo,但还没有为pkexec找到

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-22 19:04:42

总之,你不能。从 man page

程序将在其中运行的环境将被设置为一个最小的已知和安全的环境,以避免通过LD_LIBRARY_PATH或类似机制注入代码。此外,PKEXEC_UID环境变量被设置为调用pkexec的进程的用户id。

您可以使用pkexec注释使X11保留一些环境变量(即允许X11程序通过保留$DISPLAY$XAUTHORITY来工作)。然而,保留所有环境变量似乎是故意拒绝的决定。

票数 4
EN

Stack Overflow用户

发布于 2021-11-11 18:16:15

如果只需要保留几个环境变量,则可以使用env保存它们。

代码语言:javascript
复制
pkexec bash -c 'echo $PATH'
/usr/sbin:/usr/bin:/sbin:/bin:/root/bin

pkexec env PATH=$PATH bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42960140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档