Calicoctl错误:“ bash:/ usr / local / bin / calicoctl:权限被拒绝的ubuntu

时间:2018-07-16 15:02:31

标签: docker ubuntu kubernetes yaml calico

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

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

但是,当我不得不在终端中尝试此命令时

calicoctl apply -f calico.yaml

我有这个错误

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

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

1 个答案:

答案 0 :(得分:2)

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

  

如果仅是来自curl -o的直接输出,则根本不会有任何x位,因此我希望rw-r--r--rw-rw-r--取决于主动umask

可执行文件的权限是什么样的?您可以通过运行以下内容来找到它:

ls -l /usr/local/bin/calicoctl

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

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

rw-r--r--部分分别以三个字母块表示所有者,组和世界/全局的允许权限。 You can read more about how permissions work here

我觉得您的结果看起来与rw-r--r--类似,这意味着没有人能够执行。通常位于/usr/local/bin的所有二进制文件都归root拥有,属于root组,并且权限设置为rwxrwxrwx(每个人都可以读取/写入/执行)或rwxr-xr-x(所有者可以读取/写入/执行,但组成员和全局成员只能读取/执行。)

要尝试调整

rwxrwxr-x的权限

sudo chmod 775 /usr/local/bin/calicoctl

,看看是否可行。 chmod是用于更改权限的工具。同样,请参见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运行初始命令,但这不是解决方案,只是一种解决方法