如何在没有“权限被拒绝错误”的情况下将文件“推送”到Google Compute Engine

时间:2014-07-27 04:18:24

标签: debian file-permissions google-compute-engine

我正在尝试使用Google Compute Engine将文件从我的计算机推送到云中的实例。但是,每当我尝试这个命令时:

gcutil --project=<project-id> push <instance-name> <local-file> <remote-target-path>

问题是(它出现在服务器端)推送文件的尝试被拒绝。以下是信息:

scp: /Uploads: Permission denied

在我的情况下,/ Uploads是我创建的服务器上的目录。我尝试使用不同的权限类型,如777和其他几个,但是这可能与GCE快速入门指南中的这个评论有关吗?

“... push不允许您保存在需要root权限的目录中,这在此方案中是必需的,因为上面的Web服务器文件的默认位置需要root权限。您可以将默认位置更改为某个位置不需要root访问权限,也不需要以root用户身份打开现有文件进行编辑。“

我没有编辑除该目录以外的任何权限,所以我认为它可能是一个问题,因为我很可能默认使用root帐户。这台机器是基于Debian 7的

由于

2 个答案:

答案 0 :(得分:0)

我刚试了一下。 (gce debian)

  • 在根级别创建名为/ upload(sudo mkdir upload)
  • 的目录
  • 将权限更改为777(sudo chmod 777,但所有权仍为root:root)
  • gcutil将本地文件推送到远程/上传目录

并且在没有权限问题的情况下工作正常。 尝试检查:

  • 实例允许端口,默认情况下应该为ssh打开端口22。 (从控制台开发人员/浏览器查看)
  • 作为非root用户,您是否可以在目录中创建文件?当您使用ssh时,默认情况下应该以非root用户身份登录。
  • 您对gce实例的用户权限。

希望有所帮助

答案 1 :(得分:0)

问题最终是/upload文件必须指定为upload,两边都没有任何斜杠。它试图将目录上传到现有目录。