平台:Google 计算引擎
虚拟机实例:pytorch-最新-gpu-20190911
login 命令:$ gcloud compute ssh jupyter@my-fastai-instance -- -L 8080:localhost:8080
为了节省 GCP 计费时间,我在本地机器上克隆了 fastai 课程 v3 和库,这使我能够进行非计算密集型操作,例如数据集创建等。
因此,在本地创建了几个数据集后,我尝试使用 WinSCP 将文件夹复制到我的 vm 实例。但我收到了“权限被拒绝”错误。经过多次挫折,我发现这是由于 /home 目录归“jupyter”所有。然后我使用 $sudo chown -R my-username ~/jupyter
将所有权更改为我的用户名。这使我能够通过 WinSCP 将我的所有本地数据复制到 gce。但是当我尝试在 gce 中运行我的笔记本时,它们无法运行。为了运行它们,我不得不将所有权恢复为“jupyter”。
所以我的问题是:我怎样才能将 /home 所有者更改为 my_username,但仍允许 Jupyter 运行我的笔记本?这是 Jupyter 中的设置还是我需要做其他事情?我的目标是使用 WinSCP 自由传输文件,而无需更改目录的 jupyter 所有权。
答案1
WinSCP.net 已在文章中发布了有关要遵循的程序的详细描述
使用 SFTP 安全连接到 Google Compute Engine 服务器。
这篇文章本身太长太详细了,不方便在此重现。简而言之,它描述了如何:
- 生成你的私钥
- 收集有关您的 GCE 实例的信息
- 为您的 Google Compute 帐户设置 SSH 密钥
- 设置 WinSCP 登录
答案2
从未在相同情况下起作用,但我猜想 jupyter 只是一个拥有主文件夹的典型用户。您可以将您的用户名添加到 jupyter 组,而不是获取所有权。
运行时,ls -l /home
您可以看到用户文件夹的当前权限。例如:
ls -l /home | grep jupyter
drwxr-xr-x 13 jupyter jupyter 4096 Sep 8 10:26 jupyter
第一个jupyter
是用户名,第二个jupyter
是组名。您可以看到权限是:
rwx
对于用户来说jupyter
。r-x
为团体成员jupyter
。r-x
对于其余用户来说。
在这种情况下,您可以将您的用户添加到组jupyter
编辑中/etc/group/
:
jupyter:x:1001:bill
然后为该组添加适当的权限:
chmod -R g+w /home/jupyter
这基本上意味着“递归更改 /home/jupyter 中的权限以向组添加写入权限”。现在您应该看到如下权限:
ls -l /home | grep jupyter
drwxrwxr-x 13 jupyter jupyter 4096 Sep 8 10:26 jupyter
注意区别,现在 UGO 权限(用户、组、其他)是“drwxr瓦xr-x'