jupyter-notebook - 关闭 jupyter 笔记本的魔法

标签 jupyter-notebook

我在多用户共享环境中使用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/

相关文章:

jupyter-notebook - 如何打印来自 Sagemaker 培训的调试信息?

ipython - ipython 中的括号匹配

jupyter-notebook - 如何将 Jupyter Notebook 转换为学术论文格式?

python - 将变量从 Jupyter notebook 传递到 python 脚本

python - 以 f-String 格式列出\n

python - 在 Miniconda 上安装 Jupyter Notebook

python - Bokeh 中的多行悬停

jupyter-notebook - 在 Google Colaboratory 中使用小部件

python - 在 Jupyter 中使用浏览按钮上传文件并使用/保存它们

python - 为什么 %time 输出是 Wall time : 0 ns in Jupyter Notebook with IPython?