#memfd-create #seal #command #exec #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

#374 in Unix APIs

Download history 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 235/week @ 2025-01-31 202/week @ 2025-02-07 146/week @ 2025-02-14 372/week @ 2025-02-21 202/week @ 2025-02-28 178/week @ 2025-03-07 227/week @ 2025-03-14 174/week @ 2025-03-21 451/week @ 2025-03-28 308/week @ 2025-04-04 265/week @ 2025-04-11

1,273 downloads per month
Used in 2 crates

MIT license

36KB
630 lines

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.


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.

Dependencies

~135KB