ITADN
ioi/isolate
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

isolate

Isolate 是一个沙箱环境,旨在安全地运行不可信的可执行文件,例如编程竞赛中参赛者提交的程序。Isolate 为这些程序提供受限访问权限,防止其影响主机系统。它利用了 Linux 内核的特定功能,如命名空间和控制组。

Isolate 由 Martin Mareš(mj@ucw.cz)和 Bernard Blackham(bernard@blackham.com.au)开发,目前仍由前者负责维护。还有其他几人贡献了用于添加功能及修复错误的补丁(列表见 Git 历史记录)。非常感谢!

最初,Isolate 是 Moe Contest Environment] 的一部分,但后来发展成为一个独立项目,被不同的竞赛系统所使用,其中最著名的就是 CMS]。它现在托管在 GitHub] 上,您可以在那里提交错误报告和功能请求。

如果您想了解更多细节,请阅读 Martin 和 Bernard 发表在《Olympiads in Informatics》期刊上的关于 Isolate 的设计] 以及 评分系统安全] 的论文。此外,Isolate 的 手册页面] 也可在线获取。

安装 Isolate

要编译 Isolate,您需要:

  • pkg-config

  • libcap 库的头文件(通常包含在 libcap-dev 包中)

  • libseccomp 库的头文件(libseccomp-dev)

  • 用于编译 isolate-cg-keeper 的 libsystemd 库的头文件(libsystemd-dev 包)

如果您需要编写手册,可能还需要 a2x(可在 AsciiDoc] 中找到)。但如果您只需要 Isolate 可执行文件,直接运行 make isolate 即可。

手册页中的 INSTALLATION 与 REPRODUCIBILITY 两节介绍了推荐的系统配置。

Debian 包

Isolate 也有适用于稳定版 Debian Linux 以及 Ubuntu 最后两个 LTS 发行的包,所有这些包均基于 amd64 架构。要使用它们,请创建包含以下内容的/etc/apt/sources.list.d/isolate.sources

Types: deb
URIs: http://www.ucw.cz/isolate/debian/
Suites: trixie-isolate
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/isolate.asc

您还需要安装该仓库的公钥:

curl https://www.ucw.cz/isolate/debian/signing-key.asc >/etc/apt/keyrings/isolate.asc

之后执行以下命令:

apt update && apt install isolate

此外,还有适用于 arm64 架构的实验性包。