原因
- sudo命令会重置环境变量,查看文件
/etc/sudoers
,可以看到这样的配置
Defaults env_reset
解决方法
-
第一种,也是最简单的,使用sudo -E
来代替sudo
即可保留当前用户的环境变量,但缺点也很明显,每次都要加
-
第二种方式:修改/etc/sudoers
文件,将Defaults env_reset
改为 Defaults !env_reset
,这样以后使用sudo就再也不会重置环境变量了
需要注意的是`/etc/sudoers`是只读文件,vim不能更改,要使用`visudo`命令(不用加文件名)来更改内容
-
不过大部分环境变量我们一般都用不着,这种情况就可以在配置中添加env_keep,来使指定的几个环境变量保持不变
- 具体的做法是在
/etc/sudoers
中添加语句 Defaults env_keep += "env1 env2"
,这样环境变量env1 和env2就可以在sudo执行时保留原来的值
- 不过既然
/etc/sudoers
是个只读文件,就不是用来让我们改来改去的;还除了它,我们还可以在目录/etc/sudoers.d/
下随便创建文件,写入 Defaults env_keep += "env1 env2"
,效果和在/etc/sudoers
中是一样的,也更加方便删除和修改
-
有关sudo的更多内容可以查看这里
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)