1

由于超出本文范围的原因,我想运行类似于计算机语言基准游戏的外部(用户提交)代码。显然,这需要在受限环境中完成。这是我的限制要求:

  1. 只能读取/写入当前工作目录(将是大 tempdir)
  2. 没有外部访问(互联网等)

我可能不关心的其他任何事情(例如,处理器/内存使用情况等)。

我自己有几个限制。使用标准 *nix 功能(特别是 RHEL 5.x)的解决方案将是首选,因为这样我就可以使用我们的集群作为后端。在那里安装软件也很困难,因此基本发行版中的某些内容将是最佳的。

现在,问题:

  1. 这甚至可以用外部编译的二进制文件来完成吗?似乎有可能,但也可能只是没有希望。
  2. 如果我们强制提交代码本身并自己编译会怎样。这会让问题变得更容易还是更难?
  3. 我应该放弃主目录保护,并使用虚拟机/回滚吗?阻止外部通信怎么样(VM 通常不是通过桥接的 LAN 连接进行通信的吗?)
  4. 我错过了什么?

可能有用的想法:

  1. 回复_ 虽然对编译的代码没有帮助
  2. 在代码完成后使用具有回滚功能的 VM(可以配置网络以便有本地网桥但没有 WAN 网桥吗?)。不适用于集群。
4

2 回答 2

1

我会检查和评估 VM 和特殊的 SELinux 上下文。

于 2009-12-07T20:30:53.710 回答
0

我认为您无法通过简单的文件系统保护来做您需要的事情,因为您将无法阻止对允许访问网络等的系统调用的访问。您可能可以使用AppArmor来做您想做的事情虽然需要。它使用内核并虚拟化外部二进制文件。

于 2009-12-07T19:27:02.313 回答