3个版本

使用旧的Rust 2015

0.1.2 2020年10月15日
0.1.1 2016年4月7日
0.1.0 2016年4月7日

Unix API 中排名第 921

每月下载量 21

LGPL-2.1

9KB
187 行代码(不含注释)

seccomp

此库提供了对 libseccomp 的高级封装。

添加到 Cargo.toml

[dependencies]
seccomp = "0.1"

文档


lib.rs:

此软件包基于 seccomp_sys 并为 libseccomp 提供了一个高级封装。

示例用法

extern crate seccomp;
extern crate libc;

use seccomp::*;

fn main() {
    let mut ctx = Context::default(Action::Allow).unwrap();
    let rule = Rule::new(105 /* setuid on x86_64 */,
        Compare::arg(0)
                .with(1000)
                .using(Op::Eq)
                .build().unwrap(),
        Action::Errno(libc::EPERM) /* return EPERM */
    );
    ctx.add_rule(rule).unwrap();
    ctx.load().unwrap();
    let ret = unsafe { libc::setuid(1000) };
    println!("ret = {}, uid = {}", ret, unsafe { libc::getuid() });
}

依赖

~58KB