是否有可能创造一个环境安全地运行任意Python脚本在Linux?这些脚本应该是收到信任的人,并可能过大,以检查它们。

一个非常暴力的解决办法是创建一个虚拟机和恢复其初始状态后的每一次发射的一个不可信的脚本。(太昂贵。)

我不知道,如果这有可能限制Python访问该文件系统的和相互作用的其他程序等。

有帮助吗?

解决方案

考虑使用chroot监。这不仅是非常安全的,很好的支持和测试,但它也适用于你的Python运行外部应用程序。

其他提示

您可以尝试以下 4 件事:

  • 正如您已经提到的,使用虚拟机或某种其他形式的虚拟化(也许solaris区域足够轻量级?)。如果脚本破坏了操作系统,那么你不在乎。
  • 使用 chroot,将 shell 会话放入虚拟根目录中,与主操作系统根目录分开。
  • 使用系统跟踪。可以将其视为系统调用的防火墙。
  • 使用基于 systrace 构建的“监狱”,为每个监狱提供自己的进程表等。

Systrace 最近已被泄露,因此请注意这一点。

您可以Jython的运行,并从JVM使用沙盒机制。在JVM沙箱是很浓很好理解或多或少有据可查。这将需要一些时间来确定你想要什么,让你硝基甲苯要允许什么,但你应该能够从得到一个非常强大的安全...

在另一侧上,Jython是不与CPython的...

100%兼容

你能不能只运行作为拥有什么,但在该目录中的脚本?

没有访问权限的用户
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top