如果我在不使用pkexec的情况下执行print os.environ,就会得到许多有用的系统环境变量,但是,一旦执行,它们中的大多数都会消失。我怎么才能用pkexec把他们弄回来?我知道有一个解决办法是用sudo,但还没有为pkexec找到
发布于 2017-03-22 19:04:42
总之,你不能。从 man page
程序将在其中运行的环境将被设置为一个最小的已知和安全的环境,以避免通过LD_LIBRARY_PATH或类似机制注入代码。此外,PKEXEC_UID环境变量被设置为调用pkexec的进程的用户id。
您可以使用pkexec注释使X11保留一些环境变量(即允许X11程序通过保留$DISPLAY和$XAUTHORITY来工作)。然而,保留所有环境变量似乎是故意拒绝的决定。
发布于 2021-11-11 18:16:15
如果只需要保留几个环境变量,则可以使用env保存它们。
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/gameshttps://stackoverflow.com/questions/42960140
复制相似问题