2 个不稳定版本
0.2.0 | 2021年3月16日 |
---|---|
0.1.0 | 2019年6月20日 |
#576 in Unix APIs
41KB
428 代码行
rust-illumos-priv
调整 illumos 权限集。
illumos 实现了一套权限,这些权限可以精细控制进程的行为。拥有特定权限允许进程执行一组受限制的操作。
有关权限及其描述的列表,请参阅 PRIVILEGES(5),或查看此crate的文档。
示例
从以root身份运行的进程删除fork和exec权限会导致无法执行ls
。以下示例的源代码可在examples/fork-exec.rs找到。
root - rustdev ~/src/rust-illumos-priv (git:master) # cargo run --example fork-exec
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
Running `target/debug/examples/fork-exec`
failed to fork/exec ls: PermissionDenied
lib.rs
:
illumos 实现了一套权限,这些权限可以精细控制进程的行为。拥有特定权限允许进程执行一组受限制的操作。
此crate为此接口提供了一个安全的封装,允许您为进程或其子进程添加/删除/替换权限集。
示例
use illumos_priv::{PrivOp, PrivPtype, PrivSet, Privilege};
// Get a new basic PrivSet.
let mut set = PrivSet::new_basic().unwrap();
// Remove the ability to fork(2) from the set.
let _ = set
.delset(Privilege::ProcFork)
.expect("failed to delete from set");
// Replace the effective privilege set with the new one
illumos_priv::setppriv(PrivOp::Set, PrivPtype::Effective, &set).unwrap();