#[non_exhaustive]#[repr(u64)]pub enum Scope {
AbstractUnixSocket = 1,
Signal = 2,
}
Expand description
Scope right.
Each variant of Scope
is a
scope flag.
A set of scopes can be created with BitFlags<Scope>
.
§Example
use landlock::{ABI, Access, Scope, BitFlags, make_bitflags};
let signal = Scope::Signal;
let signal_set: BitFlags<Scope> = signal.into();
let signal_uds = make_bitflags!(Scope::{Signal | AbstractUnixSocket});
let scope_v6 = Scope::from_all(ABI::V6);
assert_eq!(signal_uds, scope_v6);
§Warning
To avoid unknown restrictions don’t use BitFlags::<Scope>::all()
nor BitFlags::ALL
,
but use a version you tested and vetted instead,
for instance Scope::from_all(ABI::V6)
.
Direct use of the BitFlags
API is deprecated.
See ABI
for the rationale and help to test it.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
AbstractUnixSocket = 1
Restrict from connecting to abstract UNIX sockets created outside the sandbox.
Signal = 2
Restrict from sending signals to processes outside the sandbox.
Trait Implementations§
Source§impl Access for Scope
§Warning
If ABI <= ABI::V5
, Scope::from_all()
returns an empty BitFlags<AccessScope>
, which
makes Ruleset::handle_access(AccessScope::from_all(ABI::V5))
return an error.
impl Access for Scope
§Warning
If ABI <= ABI::V5
, Scope::from_all()
returns an empty BitFlags<AccessScope>
, which
makes Ruleset::handle_access(AccessScope::from_all(ABI::V5))
return an error.
Source§impl BitFlag for Scope
impl BitFlag for Scope
§fn empty() -> BitFlags<Self>
fn empty() -> BitFlags<Self>
Create a
BitFlags
with no flags set (in other words, with a value of 0). Read more§fn from_bits(bits: Self::Numeric) -> Result<BitFlags<Self>, FromBitsError<Self>>
fn from_bits(bits: Self::Numeric) -> Result<BitFlags<Self>, FromBitsError<Self>>
Create a
BitFlags
if the raw value provided does not contain
any illegal flags. Read more§fn from_bits_truncate(bits: Self::Numeric) -> BitFlags<Self>
fn from_bits_truncate(bits: Self::Numeric) -> BitFlags<Self>
Create a
BitFlags
from an underlying bitwise value. If any
invalid bits are set, ignore them. Read more§unsafe fn from_bits_unchecked(bits: Self::Numeric) -> BitFlags<Self>
unsafe fn from_bits_unchecked(bits: Self::Numeric) -> BitFlags<Self>
Create a
BitFlags
unsafely, without checking if the bits form
a valid bit pattern for the type. Read moreSource§impl RawBitFlags for Scope
impl RawBitFlags for Scope
Source§const EMPTY: Self::Numeric = {transmute(0x0000000000000000): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
const EMPTY: Self::Numeric = {transmute(0x0000000000000000): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
A value with no bits set.
Source§const DEFAULT: Self::Numeric = {transmute(0x0000000000000000): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
const DEFAULT: Self::Numeric = {transmute(0x0000000000000000): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
The value used by the Default implementation. Equivalent to EMPTY, unless
customized.
Source§const ALL_BITS: Self::Numeric = {transmute(0x0000000000000003): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
const ALL_BITS: Self::Numeric = {transmute(0x0000000000000003): <scope::Scope as enumflags2::_internal::RawBitFlags>::Numeric}
A value with all flag bits set.
Source§const BITFLAGS_TYPE_NAME: &'static str = "BitFlags<Scope>"
const BITFLAGS_TYPE_NAME: &'static str = "BitFlags<Scope>"
The name of the type for debug formatting purposes. Read more
impl Copy for Scope
impl Eq for Scope
impl StructuralPartialEq for Scope
Auto Trait Implementations§
impl Freeze for Scope
impl RefUnwindSafe for Scope
impl Send for Scope
impl Sync for Scope
impl Unpin for Scope
impl UnwindSafe for Scope
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more