2017-07-08 78 views
0

我想创建一个基于我们自己的专有Python包的Web应用程序的实时演示。在演示中,用户应该能够导入软件包,然后编写并运行实时探索软件包功能的简单Python脚本。 Jupyter笔记本的公开实例(特别是jupyter/tmpnb的实现)将是一个最佳解决方案,但我担心用户只能使用Jupyter的魔法命令(即通过访问shell命令)和导航来访问专有的python代码随时会通过运行公共实例的服务器的目录系统。是否有任何替代Jupyter笔记本,我可以使用它? (即为演示用户设置交互式实时会话,以便他们可以对包进行python测试,而无需访问包代码)。任何有关这样做的最佳方式的建议将不胜感激。非常感谢。jupyter/tmpnb商业网络应用演示

回答

0

如果你正确地使用Containerise(例如通过使用Docker),那么你可以很容易地为你的用户创建环境,让他们陷入混乱,并使他们无法访问服务器的文件夹。

事实上,如果你搞砸了tmpnb server,并打开一个终端,你会注意到用户不能访问除自己容器文件夹以外的任何东西。所以你可以按照tmpnb自述说明操作。

此外,您可以随时设置所有内容,然后自行尝试访问您的专有代码,以便让您自己的代码更加安全,并且用户只能访问非常有限的环境。

+0

您好,非常感谢您的回答,我很困惑:我在tmpnb服务器上玩了一下(通过您提供的链接),并且能够通过使用魔术命令访问服务器目录:%cd .. ,%ls等,我在这里错过了什么?谢谢。 –

+0

嗯,我digot自己在保护主服务器,而不是在笔记本服务器中的文件之间混合 - Juyterhub不关心用户对自己的服务器做什么,只要它保护主服务器。我不认为你实际上可以阻止对文件系统的访问,因为python本身可以通过子进程访问文件系统。你必须创建一个定制的内核来阻止你不喜欢的每一个可能的文件系统命令。对不起,已经得到你的希望了:( –