#unveil #bindings #promise #pledge #execpromises

openbsd

Rust 对 OpenBSD 的 pledge(2) 和 unveil(2) 的绑定

4 个版本

0.1.2 2021年11月19日
0.1.1 2021年11月19日
0.1.0 2020年12月9日
0.0.0 2020年12月7日

#335 in 操作系统

ISC 许可证

8KB
142

openbsd

OpenBSD 的 pledge(2) 和 unveil(2) 的 Rust 绑定。

用法

承诺

宏语法

use openbsd::pledge;

pledge!("stdio rpath exec")?; // only make promises
pledge!(_, "stdio rpath")?; // only make execpromises
pledge!("stdio", "stdio")?; // make both

assert!(pledge!("wpath").is_err()); // cannot increase permissions

函数语法

use openbsd::pledge::{pledge, pledge_promises, pledge_execpromises};

pledge_promises("stdio rpath exec")?; // only make promises
pledge_execpromises("stdio rpath")?; // only make execpromises
pledge("stdio", "stdio")?; // make both

assert!(pledge_promises("wpath").is_err()); // cannot increase permissions

揭露

宏语法

use openbsd::unveil;

unveil!("/path/to/file", "rw")?;
unveil!("/path/to/another/file", "r")?;

unveil!(); // disable further calls to unveil
assert!(unveil!("/", "rwxc").is_err());

函数语法

use openbsd::unveil;

unveil("/path/to/file", "rw")?;
unveil("/path/to/another/file", "r")?;

unveil::disable(); // disable further calls to unveil
assert!(unveil("/", "rwxc").is_err());

无运行时依赖