cordon

Crates.iocordon
lib.rscordon
version0.3.0
sourcesrc
created_at2023-09-20 06:04:39.948146
updated_at2023-12-02 22:00:21.617741
descriptionEmbeddable sandboxing a-la-carte
homepagehttps://github.com/wgoodall01/cordon
repositoryhttps://github.com/wgoodall01/cordon
max_upload_size
id977819
size191,037
William Goodall (wgoodall01)

documentation

https://docs.rs/cordon

README

cordon

Embeddable, customizable rootless containerization for Rust.

Milestones

  • M1: Steel Thread
  • M2: Mount Namespace and Filesystem Control
  • M3: PID namespace and UID mapping
  • M4: Control groups

Features

  • Give the child a list of mounts

M1: Steel Thread

A complete, yet limited, working implementation of the library, which can spawn a user-specified program in a user namespace. This milestone will be complete when "whoami", run in the sandbox, returns "root."

M2: Mount Namespace and Filesystem Control

We'll add the facility to enter a mount namespace in the sandbox, to change the apparent root of the sandboxed program, and to manipulate the mount table inside the sanbdox. This milestone will be complete when the output of "ls /" differs inside and outside the sandbox.

M3: PID namespace, UID mapping

We'll add the ability to place the sandboxed program in a PID namespace, and to map user IDs inside the sandbox to user IDs outside the sandbox. This milestone will be complete when files written inside the sandbox appear to the host as owned by the outer process's user ID, and when "sh -c 'echo $$'" returns 1 inside the sandbox.

M4: Control groups

We'll add the ability to place the sandboxed child process in a Linux control group, and allow the caller to set its parameters. This milestone will be complete when the host can suspend and resume the sandboxed child using the cgroup freezer.

Commit count: 23

cargo fmt