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

前端之家收集整理的这篇文章主要介绍了redhat – 如何配置sudoers以始终保持LD_LIBRARY_PATH环境变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
无论我尝试什么,似乎在我用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.

猜你在找的Linux相关文章