#seal #exec #memfd-create #command #memfd

pentacle

Executes programs as sealed anonymous files on Linux

5 releases (2 stable)

1.1.0 Oct 3, 2024
1.0.0 Sep 30, 2020
0.2.0 Jun 23, 2020
0.1.1 Mar 16, 2020
0.1.0 Nov 15, 2019

#356 in Unix APIs

Download history 154/week @ 2024-10-18 198/week @ 2024-10-25 180/week @ 2024-11-01 148/week @ 2024-11-08 258/week @ 2024-11-15 120/week @ 2024-11-22 173/week @ 2024-11-29 274/week @ 2024-12-06 241/week @ 2024-12-13 141/week @ 2024-12-20 191/week @ 2024-12-27 166/week @ 2025-01-03 322/week @ 2025-01-10 129/week @ 2025-01-17 217/week @ 2025-01-24 167/week @ 2025-01-31

848 downloads per month
Used in 2 crates

MIT license

36KB
630 lines

pentacle

pentacle is a library for executing programs as sealed anonymous files on Linux, using memfd_create(2). It also has a lower-level interface for creating and sealing anonymous files with various flags.

This is useful for executing programs that execute untrusted programs with root permissions, or ensuring a cryptographically-verified program is not tampered with after verification but before execution.

This library is based on runc's cloned_binary.c.


lib.rs:

pentacle is a library for executing programs as sealed anonymous files on Linux, using memfd_create(2).

This is useful for executing programs that execute untrusted programs with root permissions, or ensuring a cryptographically-verified program is not tampered with after verification but before execution.

The library provides a wrapper around Command as well as two helper functions, ensure_sealed and is_sealed, for programs that execute sealed versions of themselves.

fn main() {
    pentacle::ensure_sealed().unwrap();

    // The rest of your code
}

Lower-level control over the creation and sealing of anonymous files is available via SealOptions.

Dependencies

~130KB