JupyterHub:用户的共享文件夹权限

JupyterHub: shared folder permission for users

我正在开发基于 https://opendreamkit.org/2018/10/17/jupyterhub-docker 项目的容器化 JupyterHub。 我已经把它放在 EC2 中并且一切正常:我的所有用户都有一个私有存储和共享存储来共享它的笔记本。

现在我需要添加新用户,他们只需要看到共享内容的一小部分 space。那么,我想要这样的配置:

/shared/new_space/  >>> New users & Old users
/shared/            >>> Only old users

我正在考虑“玩”DockerSpawner,但我不知道该怎么做。 我可以将一个新目录放入

c.DockerSpawner.volumes = {
    'jupyterhub-user-{username}': notebook_dir,
    '/home/ubuntu/efs-disk/data-shared': '/home/jovyan/shared'
    '/home/ubuntu/efs-disk/data-shared/NEW_SPACE': '/home/jovyan/shared/NEW_SPACE' #Need to try
}

但是我该如何做用户的权限呢?哪个组件管理用户权限?您对完成我的任务有什么建议吗?

提前致谢,问候。

在网上进行了大量搜索后,我找到了解决方案here: 然后我将 jupyterhub_config.py 修改为:

import os
from dockerspawner import DockerSpawner

class MyDockerSpawner(DockerSpawner):
    # Questa è la lista di Utenti che non vedranno la cartella sharedm ma solo la shared_notebooks
    denied_team = ['test1','test2','test3'] 
    def start(self):
        if self.user.name in self.denied_team:
            self.volumes['jupyterhub-user-{username}'] = {'bind': '/home/jovyan' , 'mode': 'rw'}
            self.volumes['/home/ubuntu/efs-disk/shared_notebooks'] = {'bind': '/home/jovyan/shared_notebooks', 'mode': 'rw'}
        else:
            self.volumes['jupyterhub-user-{username}'] = {'bind': '/home/jovyan' , 'mode': 'rw'}
            self.volumes['/home/ubuntu/efs-disk/data_shared'] = {'bind': '/home/jovyan/shared', 'mode': 'rw'}
            self.volumes['/home/ubuntu/efs-disk/shared_notebooks'] = {'bind': '/home/jovyan/shared_notebooks', 'mode': 'rw'}
        return super().start()


c.JupyterHub.spawner_class = MyDockerSpawner
c.JupyterHub.<OTHER-SETTINGS>

我想把“denied_team”放在一个更好的位置,但现在我不会移动它。

此致