如何运行隔离的 jupyterhub 笔记本



我在 CentOS7 服务器上使用 sudospawner 运行一个 jupyterhub。jupyterhub的目的有两个

  1. 确保每个人在运行生产代码时都有完全相同的 conda 包
  2. 允许用户使用同一笔记本的多个实例(我们保留所有可视化工具(,而不是编辑彼此的本地版本。

最初,当我安装 jupyterhub 时,有人告诉我,不同的用户将能够运行同一笔记本的独立版本。换句话说,如果人员 A 将主笔记本中的参数从"foo"更改为"bar",这不会导致 B 的单用户笔记本更改,因为每个人都在生成一个单独的服务器。

但是,现在它实际上已安装,我发现情况并非如此。只要我具有正确的权限,我就可以更改任何人的笔记本,此更改会反映在打开笔记本的任何人中。这击败了第 #2 点。我希望人员 A、B、C 都使用相同的笔记本 N,而不会更改反映在每个人的本地计算机上。

现在我想到了一个解决方案,我们保留主笔记本的 git 存储库并运行一些代码以在登录时自动将存储库拉入每个人的本地目录。但是,是否有更简单的方法或更可接受的方法来仅使用 jupyterhub 配置命令来完成同样的事情?

如果您在 Linux 服务器上设置 jupyterhub,则文件权限将处理此问题。我在个人 CENTOS 7 服务器上使用 SudoSpawner 和 PAM 身份验证的设置:

  1. 在/opt/中安装 anaconda,并将 svc 帐户作为所有者
  2. 让服务帐户为每个具有权限 770 的用户 ID 创建/opt/notebooks/{userid}(所有者和组的完全权限,其他没有(
  3. 让 jupyternotebooks 在/opt/notebooks/{userid} 中生成,具体取决于用户 ID
  4. 对于每个新笔记本,将默认权限设置为 740(所有者的完全权限、组的只读权限、其他
  5. 笔记本的无权限(。
  6. 只有所有者才能保存写入和保存自己的笔记本。其他人可以在其他人的笔记本中查看、编辑和执行代码,但无法保存更改。理论上,您可以在其他人的文件夹中创建笔记本,但强烈建议不要这样做(尽管没有明确禁止(。

最新更新