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
每月489次下载
在 5 crates 中使用
105KB
5.5K SLoC
syscallz-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