我很难将文件复制到我的Google计算引擎。 我正在Google Compute Engine上使用ubuntu服务器。
我是从我的OS Xterminal做到这一点,我已经使用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].
创build一个进程作为另一个用户运行
Symfony2caching重新创build – 写入权限失败
C#从“高级安全设置”获取“应用于”信息的目录
从本地networking访问wamp时出现禁止错误
在windows XP上:如何创build一个只有一个特定目录的读取权限的用户?
我怎样才能看到caspol认为一个代码段属于哪个区域?
内核模块执行中的不同权限
PHP exec()命令权限被拒绝
通过Gitolite和post-receive hook部署节点应用程序
我应该写一个临时文件临时目录吗? 或者写一个临时文件到最终目录?
在实例名称前插入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虚拟机的,因此您不能以root身份直接将SSH直接连接到虚拟机,也不能以gcloud compute copy-files root身份直接复制文件,原因相同: gcloud compute copy-files使用依靠ssh进行身份验证的scp 。
可能的解决方案:
(也由Faizan在评论中提出),这个解决方案每次都需要两步
使用gcloud compute copy-files来传输用户可以写入的文件/目录,例如/tmp或/home/$USER
通过gcloud compute ssh或通过控制台上的SSH按钮登录到GCE VM,并使用sudo进行复制以获得适当的权限:
# note: sample command; adjust paths appropriately
sudo cp -r $HOME/HTML/* /var/www/HTML
这个解决方案是一些事先准备工作的一个步骤:
一次性设置:直接给你的用户名写入权限/var/www/HTML ; 这可以通过几种方式来完成; 这里有一个方法:
# make the HTML directory owned by current user,recursively
sudo chown -R $USER /var/www/HTML
现在你可以运行复制一步:
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"
在我的情况下,我不想chown目标目录,因为这会导致与其他脚本的其他问题…
UPDATE
gcloud compute copy-files已弃用 。
改用:
$ gcloud compute scp example-instance:~/REMOTE-DIR ~/LOCAL-DIR --zone us-central1-a
更多信息: https : //cloud.Google.com/sdk/gcloud/reference/compute/scp
总结以上是内存溢出为你收集整理的`gcloud compute copy-files`:复制文件时拒绝权限全部内容,希望文章能够帮你解决`gcloud compute copy-files`:复制文件时拒绝权限所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)