26次发布 (16次重大变更)

0.17.0 2023年9月28日
0.16.2 2022年11月12日
0.16.1 2021年9月11日
0.15.0 2020年10月6日
0.7.0 2018年7月22日

#325 in Unix API

Download history 148/week @ 2024-03-14 115/week @ 2024-03-21 203/week @ 2024-03-28 267/week @ 2024-04-04 149/week @ 2024-04-11 150/week @ 2024-04-18 176/week @ 2024-04-25 155/week @ 2024-05-02 113/week @ 2024-05-09 125/week @ 2024-05-16 119/week @ 2024-05-23 161/week @ 2024-05-30 144/week @ 2024-06-06 140/week @ 2024-06-13 127/week @ 2024-06-20 62/week @ 2024-06-27

每月489次下载
5 crates 中使用

MIT/ApacheLGPL-2.1

105KB
5.5K SLoC

syscallz-rs 构建状态 crates.io docs.rs

适用于Rust的简单seccomp库。请注意,系统调用列表可能不完整,您可能需要发送PR来添加您的系统调用。如果系统调用列表已更新,则此crate会频繁发布。

# Cargo.toml
[dependencies]
syscallz = "0.16"

许可证

MIT/Apache-2.0


lib.rs:

适用于Rust的简单seccomp库。请注意,系统调用列表可能不完整,您可能需要发送PR来添加您的系统调用。如果系统调用列表已更新,则此crate会频繁发布。

示例

use syscallz::{Context, Syscall, Action};

fn main() -> syscallz::Result<()> {

    // The default action if no other rule matches is syscallz::DEFAULT_KILL
    // For a different default use `Context::init_with_action`
    let mut ctx = Context::init()?;

    // Allow-list some syscalls
    ctx.allow_syscall(Syscall::open);
    ctx.allow_syscall(Syscall::getpid);
    // Set a specific action for a syscall
    ctx.set_action_for_syscall(Action::Errno(1), Syscall::execve);

    // Enforce the seccomp filter
    ctx.load()?;

    Ok(())
}

依赖项

~0.4–1MB
~22K SLoC