我想向基于 linux 的 Web 服务添加一个功能,该功能允许不受信任的用户将源代码上传到一个小型 C++ 程序,并将该代码自动保存到服务器上的文件中并使用 gcc 编译然后执行,捕获标准输出。(此功能与 ideone.com、spoj.pl、topcoder.com、codechef.com 或许多其他这样做的网站不同。)
我的问题是:
Q1。如何对可执行文件进行沙箱处理以防止恶意用户试图破坏文件系统或访问网络等?
Q2。是否有一种公平/准确的方式将系统资源转移到进程中,例如处理器时间和内存使用情况?