sudo执行脚本找不到环境变量解决方法
问题: 当普通用户下,设置并export一个变量,然后利用sudo执行echo命令,能得到变量的值,但是如果把echo命令写入脚本,
然后再sudo执行脚本,就找不到变量,未能获取到值。
原因
sudo运行时,会默认重置环境变量为安全的环境变量,也即,但前设置的变量都会失效,只有少数配置文件中指定的环境变量能保存下来。
sudo的配置文件是 /etc/sudoers
需要root权限才能读取:
在/etc/sudoers中修改:
Defaults env_reset
为:
Defaults !env_reset
这样,任何环境变量都可以通过sudo传进去了。