我想要一个“沙盒”泊坞窗容器,该容器运行只处理stdin / stderr / stdout的小型不受信任的代码。
我想限制对容器内文件的读写访问。我想知道是否可以用更一般的方式而不是chmod
-ding?
用例的详细信息:
我可以使用没有对主目录的写访问权的专用用户来创建简单映像:
FROM alpine:3.10
RUN mkdir /home/sandbox && \
adduser -DH -h /home/sandbox sandbox
WORKDIR /home/sandbox
假设我还在运行映像时添加了内存和cpu限制,并且还禁用了网络...
然后我想要类似的东西
foo.cpp
程序,对其进行了编译(我相信可以在root用户下完成),然后留下二进制文件/home/sandbox/a.out
,然后由sandbox
用户执行该程序; sandbox
用户执行的脚本(例如,在perl或python中)(前提是必须由root预先安装必要的环境)。但是我不希望这些二进制文件或脚本能够:
/tmp
和/var/tmp
(以及其他所有可写文件夹是什么?)/etc
(尽管我不确定最终将它们倾倒到stdout可能有害)那么,是否有一些魔术可以禁止访问任何文件/目录(除了可能很少的给定文件/目录(例如,可能包含标准库))?