当前位置: 首页>>技术教程>>正文


linux – gcloudcompute copy-files:复制文件时拒绝权限

, , , ,

问题描述

我很难将文件复制到我的Google Compute Engine中。我在Google Compute Engine上使用Ubuntu服务器。

我正在从OS X终端执行此操作,并且已经使用gcloud进行了授权。

local:$ gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.php example-instance:/var/www/html --zone us-central1-a
Warning: Permanently added '<IP>' (RSA) to the list of known hosts.
scp: /var/www/html/index.php: Permission denied
ERROR: (gcloud.compute.copy-files) [/usr/bin/scp] exited with return code [1].

最佳办法

在实例名称之前插入root@

local:$ gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.php root@example-instance:/var/www/html --zone us-central1-a

次佳办法

这不起作用的原因是您的用户名对GCE VM实例没有权限,因此无法写入/var/www/html/

请注意,由于此问题是关于Google Compute Engine VM的,因此您不能以root的形式直接通过SSH到VM,也不能以root的形式直接复制文件,原因相同:gcloud compute copy-files使用依赖sshscp进行身份验证。

可能的解决方案:

  1. (也由Faizan在注释中建议)此解决方案每次都需要两个步骤

    1. 使用gcloud compute copy-files传输用户可以在其中写入的文件/目录,例如/tmp/home/$USER

    2. 通过gcloud compute ssh或通过控制台上的SSH按钮登录到GCE VM,并使用sudo复制以获得适当的权限:# note: sample command; adjust paths appropriately sudo cp -r $HOME/html/* /var/www/html

  2. 该解决方案是一些准备工作的第一步:

    1. one-time设置:直接给您的用户名对/var/www/html的写权限;这可以通过几种方式完成;这是一种方法:# make the HTML directory owned by current user, recursively sudo chown -R $USER /var/www/html

    2. 现在您可以在一个步骤中运行副本:gcloud compute copy-files /Users/Bryan/Documents/Websites/gce/index.php example-instance:/var/www/html --zone us-central1-a

第三种办法

我使用bash脚本从本地计算机复制到远程GCE计算机上的可写目录;然后使用ssh移动文件。

SRC="/cygdrive/d/mysourcedir"
TEMP="~/incoming"
DEST="/var/my-disk1/my/target/dir"

您还需要设置GCE_USER和GCE_INSTANCE

echo "=== Pushing data from $SRC to $DEST in two simple steps"
echo "=== 1) Copy to a writable temp directoy in user home"
gcloud compute copy-files "$SRC"/*.* "${GCE_USER}@${GCE_INSTANCE}:$TEMP"
echo "=== 2) Move with 'sudo' to destination"
gcloud compute ssh ${GCE_USER}@${GCE_INSTANCE} --command "sudo mv $TEMP/*.* $DEST" 

就我而言,我不想对目标目录进行穿刺处理,因为这会导致其他脚本出现其他问题……

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/10636.html,未经允许,请勿转载。