#[non_exhaustive]#[repr(u64)]pub enum AccessFs {
Show 16 variants
    Execute = 1,
    WriteFile = 2,
    ReadFile = 4,
    ReadDir = 8,
    RemoveDir = 16,
    RemoveFile = 32,
    MakeChar = 64,
    MakeDir = 128,
    MakeReg = 256,
    MakeSock = 512,
    MakeFifo = 1_024,
    MakeBlock = 2_048,
    MakeSym = 4_096,
    Refer = 8_192,
    Truncate = 16_384,
    IoctlDev = 32_768,
}Expand description
File system access right.
Each variant of AccessFs is an access right
for the file system.
A set of access rights can be created with BitFlags<AccessFs>.
§Example
use landlock::{ABI, Access, AccessFs, BitFlags, make_bitflags};
let exec = AccessFs::Execute;
let exec_set: BitFlags<AccessFs> = exec.into();
let file_content = make_bitflags!(AccessFs::{Execute | WriteFile | ReadFile});
let fs_v1 = AccessFs::from_all(ABI::V1);
let without_exec = fs_v1 & !AccessFs::Execute;
assert_eq!(fs_v1 | AccessFs::Refer, AccessFs::from_all(ABI::V2));§Warning
To avoid unknown restrictions don’t use BitFlags::<AccessFs>::all() nor BitFlags::ALL,
but use a version you tested and vetted instead,
for instance AccessFs::from_all(ABI::V1).
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
Execute = 1
Execute a file.
WriteFile = 2
Open a file with write access.
§Note
Certain operations (such as std::fs::write) may also require AccessFs::Truncate since ABI::V3.
ReadFile = 4
Open a file with read access.
ReadDir = 8
Open a directory or list its content.
RemoveDir = 16
Remove an empty directory or rename one.
RemoveFile = 32
Unlink (or rename) a file.
MakeChar = 64
Create (or rename or link) a character device.
MakeDir = 128
Create (or rename) a directory.
MakeReg = 256
Create (or rename or link) a regular file.
MakeSock = 512
Create (or rename or link) a UNIX domain socket.
MakeFifo = 1_024
Create (or rename or link) a named pipe.
MakeBlock = 2_048
Create (or rename or link) a block device.
MakeSym = 4_096
Create (or rename or link) a symbolic link.
Refer = 8_192
Link or rename a file from or to a different directory.
Truncate = 16_384
Truncate a file with truncate(2), ftruncate(2), creat(2), or open(2) with O_TRUNC.
IoctlDev = 32_768
Send IOCL commands to a device file.
Implementations§
Source§impl AccessFs
 
impl AccessFs
Sourcepub fn from_read(abi: ABI) -> BitFlags<Self>
 
pub fn from_read(abi: ABI) -> BitFlags<Self>
Gets the access rights identified as read-only according to a specific ABI.
Exclusive with from_write().
Sourcepub fn from_write(abi: ABI) -> BitFlags<Self>
 
pub fn from_write(abi: ABI) -> BitFlags<Self>
Gets the access rights identified as write-only according to a specific ABI.
Exclusive with from_read().
Trait Implementations§
Source§impl Access for AccessFs
 
impl Access for AccessFs
Source§fn from_all(abi: ABI) -> BitFlags<Self>
 
fn from_all(abi: ABI) -> BitFlags<Self>
Union of from_read() and from_write().
Source§impl BitFlag for AccessFs
 
impl BitFlag for AccessFs
§fn empty() -> BitFlags<Self>
 
fn empty() -> BitFlags<Self>
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>>
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>
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>
BitFlags unsafely, without checking if the bits form
a valid bit pattern for the type. Read more