david@raspberrypi:~ $ go env
-bash: /usr/bin/go: Permission denied
这是我的bash.rc
export GOPATH=$HOME/go
$HOME/.bashrc
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
如果我在我的大卫@ raspberry pi中运行ls-lah,我得到以下内容:
david@raspberrypi:~ $ ls -lah
total 28K
drwxr-xr-x 3 david david 4.0K Mar 2 22:20 .
drwxr-xr-x 4 root root 4.0K Mar 2 20:03 ..
-rw------- 1 david david 3.1K Mar 2 21:48 .bash_history
-rw-r--r-- 1 david david 220 Mar 2 20:03 .bash_logout
-rw-r--r-- 1 david david 3.6K Mar 2 22:15 .bashrc
lrwxrwxrwx 1 david root 11 Mar 2 21:31 go -> /usr/lib/go
drwxr-xr-x 2 david david 4.0K Mar 2 20:25 .nano
-rw-r--r-- 1 david david 675 Mar 2 20:03 .profile
我假设你登录的用户没有运行权限去。
要找到它,请运行以下命令
$ which go
/usr/local/go/bin/go
$ ls -l $(which go)
-rwxr-xr-x 1 root wheel 12896684 Jan 24 01:28 /usr/local/go/bin/go
从上面我们知道所有者是root
和集团所有者是wheel
。
现在运行echo $USER
以查看谁是登录用户。
由于您获得了拒绝运行许可,请以$USER
的身份运行,您可能希望将用户添加到ls -l
中提到的组中。所以,运行以下。
$ usermod -aG $USER wheel
并重启系统!然后再次尝试go env
,看它是否有效。
-a用于追加-G是要追加的组
记住wheel是我在运行ls -l
时获得的组所有者。你的可能会有所不同。此usermod命令适用于ubuntu。在你的情况下,它是覆盆子pi所以raspbian OS。找出从OS到OS更改的正确选项。