我在多用户共享环境中使用jupyter笔记本,虽然魔法很强大,但它实际上是一把双刃剑,不负责任的用户可以使用命令直接运行linux命令,例如
!ls /opt
此命令将允许您列出所有/opt 目录
!pip install <some package>
将允许用户直接从 jupyter 笔记本安装包 以及许多其他有可能改变系统的神奇命令
如何关闭 jupyter-notebook 上的多个/所有魔法命令? 谢谢
最佳答案
即使您可以关闭 magic shell 命令,Python 本身也有权执行完全相同的操作(例如 os.listdir("/opt")
与 !ls 执行相同的操作/opt
,您可以在 Python 本身中运行 pip
等),因此即使尝试也没有什么意义。
Jupyter Notebook 不适合不受信任的用户使用。即使是 JupyterHub(它确实允许用户之间具有更高的安全性)也是根据半信任用户的用例设计的,并且需要非常仔细的设置以允许不信任的用户。
但是,JupyterHub 确实允许对笔记本服务器进行容器化,因此每个用户都可以获得自己的(例如 Docker)容器,其中附加了他们的文件,并且如果他们弄乱了自己的容器,也不会弄乱其他用户或主服务器,定期备份用户文件相对容易,因此如果他们搞砸了,您可以恢复他们的数据。如果只有几个人,并且您的目标只是防止用户愚蠢,那么设置 JupyterHub 实例可能需要花费太多精力 - 只需强调用户在乱搞文件系统之前应该三思。
关于jupyter-notebook - 关闭 jupyter 笔记本的魔法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46402957/