加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

redhat – 如何配置sudoers以始终保持LD_LIBRARY_PATH环境变量?

发布时间:2020-12-14 02:46:13 所属栏目:Linux 来源:网络整理
导读:无论我尝试什么,似乎在我用sudo运行命令后都没有保存LD_LIBRARY_PATH环境变量.我设法让它坚持的唯一方法是每当我从命令行调用它时,用我的sudo命令前缀LD_LIBRARY_PATH = / / path,但我不想每次都这样做. 似乎env_keep选项忽略了这个变量,exempt_group选项也
无论我尝试什么,似乎在我用sudo运行命令后都没有保存LD_LIBRARY_PATH环境变量.我设法让它坚持的唯一方法是每当我从命令行调用它时,用我的sudo命令前缀LD_LIBRARY_PATH = / / path,但我不想每次都这样做.

似乎env_keep选项忽略了这个变量,exempt_group选项也是如此.

我的%组目前有ALL =(ALL)NOPASSWD:ALL作为其在sudoers中的访问权限.我想为我运行的任何命令保留这个特定的环境变量.

我怎样才能做到这一点?

我的服务器正在运行Red Hat Enterprise Linux 5.7.

解决方法

你可能希望你可以使用它
Defaults env_keep += "LD_LIBRARY_PATH FRED"

但是使用Sudo版本1.7.4p5对CentOS 6.2进行快速测试不会传递LD_LIBRARY_PATH但会传递FRED. sudoers man page有这个说法

Note that the dynamic linker on most operating systems will remove variables that
can control dynamic linking from the environment of setuid executables,including
sudo. Depending on the operating system this may include _RLD,DYLD_,LD_,LDR_,LIBPATH,SHLIB_PATH,and others. These type of variables are removed from 
the environment before sudo even begins execution and,as such,it is not 
possible for sudo to preserve them

所以看起来系统在sudo看到它之前从环境中删除了LD_LIBRARY_PATH.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读