问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,

然后再sudo执行脚本,就找不到变量,未能获取到值。

原因

sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来。

sudo的配置文件是 /etc/sudoers 需要root权限才能读取:

在/etc/sudoers中修改:
Defaults    env_reset
为:
Defaults    !env_reset

这样,任何环境变量都可以通过sudo传进去了。

转自: http://bbs.chinaunix.net/thread-1920936-1-1.html

http://blog.sina.com.cn/s/blog_4da051a60102uyvg.html

sudo执行脚本找不到环境变量解决方法的更多相关文章

  1. sudo执行脚本找不到环境变量

    sudo执行脚本找不到变量 问题 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能 ...

  2. sudo执行脚本找不到环境变量和命令

    简介 变量 普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,然后再sudo执行脚本,就找不到变量,未能获取到值,如题情况如下: ...

  3. SSH登录远程主机执行脚本找不到环境变量

    这是因为在Linux上,bash会有四种模式,根据不同的case,Linux会加载不同模式的bash.一般如果你自己直接登录主机,能看到环境变量,但是使用ssh 远程登录执行脚本就找不到环境变量,那么 ...

  4. 解决SSH远程执行命令找不到环境变量的问题

    通过SSH执行远程主机的命令或脚本时,经常会出现找不到自定义环境变量的问题.但是,如果通过SSH登录远程主机,然后再执行相同的命令或脚本,那么此时执行又是成功的.两种相似的方法,得到的结果却截然不同, ...

  5. ubuntu root用户下找不到环境变量解决办法

    打开 gedit /root/.bashrc   ,在文件的末尾添加: source /etc/profile 然后执行更新:source /root/.bashrc

  6. 关于使用sudo找不到环境变量的问题

    参考这里:https://www.cnblogs.com/zhongshiqiang/p/10839666.html 使用sudo -E 保留当前用户环境,这时就不会存在找不到环境变量的问题了.

  7. Linux里设置环境变量的方法(export PATH)

    1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH ...

  8. [转]在Linux里设置环境变量的方法

    在Linux里设置环境变量的方法(export PATH) 一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量.例如我的mips-linux-gcc编译器在“/opt/a ...

  9. 转 Linux里设置环境变量的方法(export PATH)

    1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下export LD_LIBRARY_PATH= ...

随机推荐

  1. OSI模型图文说明

    网关工作在第四层传输层及其以上 网络层:路由器 数据链路层:网桥,交换机 物理层:网卡,网线,集线器,中继器,调制解调器 OSI共7层:应用层,表示层,会话层,传输层,数据链路层,物理层. [7]:应 ...

  2. couldn't find "libstlport_shared.so"

    SUPPORTED_64_BIT_ABIS=[Ljava.lang.String;@9341bd4 BOARD=GEM-703LT BOOTLOADER=unknown TYPE=user match ...

  3. linux(Centos)下编译安装gcc4.8.2

    欢迎转载.转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46811159 近期要用到c++ 11,所以没办法仅仅得把那台ce ...

  4. Spring 基于xml配置方式的AOP

    我们具体用代码来说明: 1.ArithmeticCalculator.java package com.proc; public interface ArithmeticCalculator { in ...

  5. nginx代理tomcat

    http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html ...

  6. DevExpress实现GridControl删除所有行的方法

    /// <summary> /// 删除全部行 /// </summary> /// <param name="gridView">GridVi ...

  7. Mysql 逻辑运算符详解

    逻辑运算符又称为布尔运算符,用来确认表达式的真和假.MySQL 支持4 种逻辑运算符,如表4-3 所示. 表4-3                          MySQL 中的逻辑运算符 运算符 ...

  8. Atitit。团队建设--管理最佳实践--如何留住核心人才,防止人才流失 ??

    Atitit.团队建设--管理最佳实践--如何留住核心人才,防止人才流失 ?? 1. 1.人才流失后果 1 1. 1.员工的离职带走商业技术秘密和客户等资源 1 2. 2.影响在职员工的情绪,极大挫伤 ...

  9. JAVA数字特征值

    数字特征值(5分) 题目内容: 对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值.对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推.这个整数在第n位上的数字记作x, ...

  10. ng-class中的if else判断

    ng-class中的if else判断 来自于stackoverflow的一个问题,自己刚好用到,搬过来做个标记.原问题链接 在使用ng-class时,有些时候会碰到根据是否满足条件来设置元素的样式, ...