sudo 使用 golang 命令

目录

sudo 直接执行 golang 命令是不行的,需要修改一下/etc/sudoers 这个文件。因为 sudo 的环境变量和我们用户的环境变量有一些区别。

修改 sudoers

# 修改为这样(省略部分内容)
# 加上这句后在 sudo 时会保留用户的环境变量 GOPATH
Defaults env_keep += "GOPATH"
Defaults        env_reset
Defaults        mail_badpass
# 加上 go 命令的位置
Defaults        secure_path="/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
......

export GOPATH

# 我们可以执行一下 看是否能够得到 GOPATH 的路径
printenv |grep GOPATH
sudo printenv |grep GOPATH

# 如果没有得到路径,我们需要 export GOPATH
# 修改 $HOME/.profile
# 加入下面的内容
export GOPATH


# 这时就可以用 sudo 执行了
sudo go test -v  test/traceroute_test.go

目录