AWS EC2 权限被拒绝 /usr/local/bin cURL
Posted
技术标签:
【中文标题】AWS EC2 权限被拒绝 /usr/local/bin cURL【英文标题】:AWS EC2 Permissions Denied /usr/local/bin cURL 【发布时间】:2016-11-18 19:57:42 【问题描述】:我正在尝试遵循 this 文档并在我的 EC2 实例上安装 docker 机器。但是,curl 命令:
curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
退出并出现错误:
-bash: /usr/local/bin/docker-machine: 权限被拒绝
我尝试 curl 进入主目录,希望它会更改目录的权限,然后将其复制到目标,但它不起作用。
我怎样才能绕过这个?显然,ec2 用户在某些目录上缺乏 root 权限。
【问题讨论】:
假设您实际上想要覆盖任何现有的/usr/local/bin/docker-machine
,您可以在命令前加上sudo
(假设您有sudo
权限)。
因为这是 EC2 实例,所以我只有 ec2-user 访问权限。也就是说,我不确定在这种情况下如何成为 sudo。
你试过docs.aws.amazon.com/AmazonECS/latest/developerguide/…吗?
我已经安装了 docker。我需要添加由于某种原因丢失的 docker-machine。我也不想在容器中运行任何东西。
【参考方案1】:
-v 当给定-v(验证)选项时,sudo 将更新用户的缓存凭据,并在必要时验证用户的密码。 对于 sudoers 插件,这会将 sudo 超时再延长 5 分钟(或安全策略设置的任何超时时间)但是 不运行命令。并非所有安全策略都支持缓存 凭据。
ec2-user
默认在 sudoers 列表中。
[ec2-user ~]$ sudo -v
[ec2-user ~]$
试试这个:
sudo bash -c "curl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine"
如果你想让保存的文件成为所有人的可执行文件:
sudo chmod a+x /usr/local/bin/docker-machine
【讨论】:
您给出的命令有效。但是,由于我复制到那里的上一个目录的现有权限或由于此命令的结果,/usr/local/bin/docker-machine
上的权限是 -rw-r--r--
因此,当我运行 docker-machine version
时,我仍然得到 -bash: /usr/local/bin/docker-machine: Permission denied
是有没有办法使用sudo bash -c
更改权限?
谢谢@helloV!看起来我在追sudo -v
和这个。非常感谢!
P.S.生活和学习......我从没想过sudo
命令有标志:-)以上是关于AWS EC2 权限被拒绝 /usr/local/bin cURL的主要内容,如果未能解决你的问题,请参考以下文章
AWS Amazon Linux EC2 实例:apache 用户权限被拒绝写入目录
即使使用新的 EC2 实例,AWS SSH 登录仍会继续失败 [权限被拒绝 (PublicKey)]