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

Python 通过pkexec执行时缺少环境变量,python,linux,Python,Linux,如果我在没有pkexec的情况下执行print os.environ,我会得到很多有用的系统环境变量,但是,一旦我使用执行,它们中的大多数都会消失。我如何使用pkexec找回它们?我知道有一个使用sudo的解决方案,但还没有找到pkexec的解决方案简而言之,你不能。从: 程序将在其中运行的环境将设置为已知的最小安全环境,以避免通过LD_LIBRARY_路径或类似机制注入代码。此外,PKEXEC_UID环境变量设置为调用PKEXEC的进程的用户id 您可以使用org.freedesktop.po

如果我在没有pkexec的情况下执行print os.environ,我会得到很多有用的系统环境变量,但是,一旦我使用执行,它们中的大多数都会消失。我如何使用pkexec找回它们?我知道有一个使用sudo的解决方案,但还没有找到pkexec的解决方案简而言之,你不能。从:

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


您可以使用org.freedesktop.policykit.exec.allow_gui注释保留$DISPLAY和$XAUTHORITY,从而使pkexec保留一些环境变量,即允许X11程序工作。然而,保留所有环境变量似乎是故意拒绝的决定。

手册页的可能重复说明-E,-preserve env向安全策略表明用户希望预先提供其现有环境变量。如果用户没有保存环境的权限,安全策略可能会返回错误。@JoshLee-这是一个很好的参考答案。是否将此作为dup关闭?等等,我将编辑我的问题。这是不同的,好吧,我不想去修改sudoers文件,因为我更喜欢在不同的linux机器上工作的通用解决方案