#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

#357 in Unix APIs

Download history 224/week @ 2024-11-16 117/week @ 2024-11-23 175/week @ 2024-11-30 281/week @ 2024-12-07 244/week @ 2024-12-14 132/week @ 2024-12-21 215/week @ 2024-12-28 158/week @ 2025-01-04 316/week @ 2025-01-11 124/week @ 2025-01-18 209/week @ 2025-01-25 260/week @ 2025-02-01 193/week @ 2025-02-08 204/week @ 2025-02-15 292/week @ 2025-02-22 204/week @ 2025-03-01

928 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