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”放在一个更好的位置,但现在我不会移动它。
此致
我正在开发基于 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”放在一个更好的位置,但现在我不会移动它。
此致