在本地裝了個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"