sudo 命令环境变量问题

问: 普通用户自己添加了 LD_LIBRARY_PATH 环境变量来链接自己所需的库,但当
用sudo 命令运行程序是 LD_LIBRARY_PATH 环境变量变成空了。

答: 当普通用户执行sudo 时 ,系统为了安全会重置环境变量。可用 sudo -l 查看。


image.png

问: 按照网上做法,sudoedit /etc/sudoers
将 Defaults env_reset 改为 Defaults !env_reset 为何 sudo 该变量还是为空呢?


image.png

答: 原因未知,可能系统环境变量无法重置,sudo 执行命令时会 加载 /etc/environment 中的环境变量,LD_LIBRARY_PATH 在 /etc/environment 未配置。所以导致为空。

解决方法:
vim ~/.bashrc 或者 vim ~/.bash_profile 等 添加如下

alias sudo='sudo env PATH=$PATH LD_LIBRARY_PATH=$LD_LIBRARY_PATH'

测试脚本如下

#!/bin/bash
echo $LD_LIBRARY_PATH
echo $TEXT_TEST
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。