问: 普通用户自己添加了 LD_LIBRARY_PATH 环境变量来链接自己所需的库,但当
用sudo 命令运行程序是 LD_LIBRARY_PATH 环境变量变成空了。
答: 当普通用户执行sudo 时 ,系统为了安全会重置环境变量。可用 sudo -l 查看。
问: 按照网上做法,sudoedit /etc/sudoers
将 Defaults env_reset 改为 Defaults !env_reset 为何 sudo 该变量还是为空呢?
答: 原因未知,可能系统环境变量无法重置,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