Expand description
illumos implements a set of privileges that provide fine-grained control over the actions of processes. The possession of a certain privilege allows a process to perform a specific set of restricted operations.
This crate provides a safe wrapper around this interface and lets you add/remove/replace a privilege set for a process or its off-spring.
§Example:
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();
Structs§
- PrivSet
- An illumos privilege set that allows one to add/remove or complete replace a set of privileges
for a process. When
PrivSetis dropped, its backing memory is freed.
Enums§
- PrivOp
- See GETPPRIV(2) for more in depth documentation.
- Priv
Ptype - See GETPPRIV(2) for more in depth documentation.
- Privilege
- Mapping to the various illumos PRIVILEGES(5).