如何修复“go not root owned”错误

11

我在Ubuntu 16.04通过存档安装了Go,并尝试使用终端命令 go 测试我的安装。它一直提示我/ not root-owned 1000:0

我将Go安装在/usr/local文件夹中,并按照官方golang安装的指示将其包含在我的路径中。我删除了Go并尝试重新安装,但发现了相同的结果。这似乎更像是Linux根权限问题,但我不知道如何修复它。我尝试了从存档中安装的其他命令,它们都可以正常工作。任何帮助都将不胜感激。


2
“从存档中”是什么意思?你是如何安装Go的? - user9455968
1
只是一个猜测:npm 中可能存在这个 bug,导致了这个问题。如果是这样的话,很可能还有更多的系统目录不再属于 root 用户;你应该尽快修复它,因为这是一个严重的安全风险。 - Peter
4个回答

15

看起来系统根目录/的所有者不正确,这是一个安全问题,因为您不希望常规用户随意更改系统文件。似乎你在过去的某个时候有意做出了这种改变,请将其改回来,或者如果您破坏了更多权限,则重新安装系统。

sudo chown root /

顺便提一下,赋予自己有限的系统访问权限的正确方法是使用sudo。 将自己添加到sudoers中(通常在任何合理面向消费者的Linux发行版上,操作系统安装程序已经设置好了此项功能),需要特权时,使用sudo运行该命令。


9
如果 / 目录的所有者组出现问题,你可能需要运行 sudo chown root:root / 命令进行更正。请注意,该命令涉及权限管理,请谨慎操作。 - Jacob Horbulyk
我之前搞砸了,所以我还得运行 sudo chgrp root /var/ - tushortz
我必须使用 sudo chown root -R / 来完成它。 - alper
@alper 你这样做已经破坏了其他无关的事情。 - tripleee

9

在命令行中很简单:

sudo chown root:root /

0
除了我遇到的根权限问题之外,我还发现我使用 snap 安装了 go:snap install --classic go,这并不是一个好主意。即使作为 root 用户,我也无法删除 /snap 中的 go 文件夹。现在我重新安装了系统,希望问题能得到解决。

-3
sudo chown root /var

这将解决你的问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接