无法运行进入权限被拒绝吗?

时间:2019-03-03 06:35:35

标签: go raspberry-pi permission-denied

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

如果我在david @ 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

1 个答案:

答案 0 :(得分:0)

我假设您登录的用户没有运行go的权限。

要找出答案,请运行以下

$ 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的身份运行go,因此您可能需要将该用户添加到ls -l中提到的组中。因此,运行以下内容。

$ usermod -aG $USER wheel

然后重新启动系统!然后再次尝试go env看看是否有效。

-a用于附加 -G是要附加的组

usermod docs

记住wheel是我在运行ls -l时获得的组所有者。您的可能会有所不同。 此usermod命令用于ubuntu。在您的情况下,它是raspberry pi,所以是raspbian OS。在不同操作系统之间找到正确的选项。