在本地装了个Ubuntu虚拟机,golang环境搭好了并加入PATH环境变量,make编译源码时显示Permission denied
,而后sudo执行编译源码时显示sudo: go: command not found
。linux
而后尝试执行go version
命令golang
go version go1.12.6 linux/amd64
go version go1.12.6 linux/amd64
sudo: go: command not found
这???是否是很奇怪???究竟是由于什么呢??
原来root用户和非root用户正常执行命令时,使用的PATH配置文件是 /etc/environment
非root用户sudo执行命令时,使用的PATH配置文件是 /etc/sudoerscode
/etc/sudoers文件默认是reanonly只读的,须要加入些权限;而后在secure_path中加入GOROOT路径便可:
修改前源码
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
修改后虚拟机
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/usr/local/go/bin"