2 个不稳定版本
0.2.0 | 2021 年 6 月 30 日 |
---|---|
0.1.0 | 2021 年 6 月 19 日 |
#972 in Unix API
15KB
236 代码行
isolated
- Linux 上 Rust 的子进程容器
设置以下限制
- 使用
pivot_root
和overlayfs
限制文件系统访问,使其仅能读取一个虚构的只读根文件系统(通常是 Alpine minirootfs)和一个共享于主机和容器的单一目录(writedir
)。 - 使用网络命名空间限制网络访问。目前,对其他网络的访问被简单地禁用。未来应该会很有趣,使用 VETH 接口实现适当的访问控制。
- 使用命名空间禁用对主机 pids 和挂载的访问。
API 稳定性
目前还没有,尽管我不会在不增加 0.x
版本的情况下进行重大破坏性更改。
运行示例
请注意,运行此示例需要 root 权限,因为设置命名空间否则无法完成。此存储库包含一个 .cargo/config
文件,它使用 sudo -E
与所有 cargo 运行程序。
首先,下载 alpine minirootfs 并提取它(使用 ./download-rootfs.sh
工作)。
然后,运行 cargo run --example shell
会为你提供一个隔离的交互式 shell。查看 示例源代码。
许可证
MIT
依赖项
~6–15MB
~214K SLoC