Calicoctl error: "bash: /usr/local/bin/calicoctl: Permission denied ubuntu

Calicoctl error: "bash: /usr/local/bin/calicoctl: Permission denied ubuntu

我通过以下命令在我的 Ubunt 中安装了 Calicotl:

curl -O -L https://www.projectcalico.org/builds/calicoctl

但是,当我必须在终端中尝试这个命令时

calicoctl apply -f calico.yaml

我有这个错误

bash: /usr/local/bin/calicoctl: Permission denied

那么,我该如何解决呢?非常感谢你!我尝试使用 sudo 来做到这一点,但是它不起作用 etiher

问题(如果不是很明显的话)是您运行正在执行命令的用户没有执行它的权限。正如@CharlesDuffy 在评论中指出的那样:

If it's just direct output from curl -o, there won't be any x bits at all, so I'd expect rw-r--r-- or rw-rw-r--, depending on the active umask

可执行文件的权限是什么样的?您可以通过 运行ning:

找到

ls -l /usr/local/bin/calicoctl

上述命令的结果将输出类似于:

-rw-r--r-- 1 root root 1680446 Jul 16 11:56 /usr/local/bin/calicoctl

其中rw-r--r--部分分别为Owner、Group、World/Global三字母组允许的权限。 You can read more about how permissions work here.

我感觉你的结果看起来与 rw-r--r-- 相似,这意味着没有人有能力执行。 /usr/local/bin 中的所有二进制文件都属于 root,属于 root 组,并且权限设置为 rwxrwxrwx(每个人都可以 Read/Write/Execute) 或 rwxr-xr-x(所有者可以 Read/Write/Execute 但群组成员和全局成员只能 Read/Execute。)

可以尝试调整您对 rwxrwxr-x

的权限

sudo chmod 775 /usr/local/bin/calicoctl

看看是否可行。 chmod is the tool used to change permissions. Again, see this link for more info on permissions in Ubuntu/GNU+Linux.

作为参考,这里是用户权限的数字细分:

7 - full (rwx)
6 - read and write (rw-)
5 - read and execute (r-x)
4 - read only (r--)
3 - write and execute (-wx)
2 - write only (-w-)
1 - execute only (--x)
0 - none (---) 

您也可以只 运行 您的初始命令 sudo 但这不是解决方案,只是一种解决方法