小编mml*_*mlb的帖子

sudo -E 不传递所有变量

阅读man pages我希望sudo -E将所有环境变量传递给子shell,但我没有得到预期的结果。

正如预期的那样,很棒:

$ export LD_LIBRARY_PATH=/home/mmendez/toolchains/x86-destdir/usr/lib/
$ env | grep LD
LD_LIBRARY_PATH=/home/mmendez/toolchains/x86-destdir/usr/lib/
Run Code Online (Sandbox Code Playgroud)

更多精彩:

$ env -i LD_LIBRARY_PATH=/tmp/no/where env | grep LD
LD_LIBRARY_PATH=/tmp/no/where
Run Code Online (Sandbox Code Playgroud)

不是预期的:

$ env -i LD_LIBRARY_PATH=$LD_LIBRARY_PATH sudo -E /usr/bin/env | grep LD
$
$ env -i LD_LIBRARY_PATH=/tmp/no/where sudo -E /usr/bin/env | grep LD
$
Run Code Online (Sandbox Code Playgroud)

所以,我怎么能得到sudo -E通过LD_LIBRARY_PATH而无需编辑/etc/sudoers

编辑

根据 如何使 sudo 保留我的环境变量?OP 表明外壳可能与!env_reset. 我正在运行Arch Linux,默认 shell 是BASH. 再次,我不 …

sudo bash environment-variables

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

标签 统计

bash ×1

environment-variables ×1

sudo ×1