我想在PyPy沙箱中运行Python代码。我需要从脚本中获取不会干扰标准输出的输出。
我已经阅读了很多来源,其中大部分都提到过,sanboxed脚本可以将文件写入virtual / tmp。但是我无法实现这一目标(所有来源都缺少示例)。
如果无法对/ tmp进行写访问,是否可以在sanboxed脚本和控制脚本之间打开管道?
如果这一切都不可能,我可以将二进制数据写入stdout吗?我想在stdout中标记输出的开始和结尾,因此控制脚本可以区分用户输出和输出是什么。
答案 0 :(得分:0)
virtual / tmp是只读的;实际上,子进程写入任何文件的任何尝试都将被拒绝。如果你想改变它,你可以编辑控制外部进程的源,到目前为止拒绝任何写入的尝试。从rpython / translator / sandbox / sandlib.py中的do_ll_os__ll_os_open开始。