#[repr(u64)]#[non_exhaustive]pub enum AccessFs {
Show 14 variants
Execute,
WriteFile,
ReadFile,
ReadDir,
RemoveDir,
RemoveFile,
MakeChar,
MakeDir,
MakeReg,
MakeSock,
MakeFifo,
MakeBlock,
MakeSym,
Refer,
}
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 compile time behavior at run time,
which may look like undefined behavior,
don’t use BitFlags::<AccessFs>::all()
nor BitFlags::ALL
,
but AccessFs::from_all(ABI::V1)
instead.
See ABI
for the rational.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Execute
Execute a file.
WriteFile
Open a file with write access.
ReadFile
Open a file with read access.
ReadDir
Open a directory or list its content.
RemoveDir
Remove an empty directory or rename one.
RemoveFile
Unlink (or rename) a file.
MakeChar
Create (or rename or link) a character device.
MakeDir
Create (or rename) a directory.
MakeReg
Create (or rename or link) a regular file.
MakeSock
Create (or rename or link) a UNIX domain socket.
MakeFifo
Create (or rename or link) a named pipe.
MakeBlock
Create (or rename or link) a block device.
MakeSym
Create (or rename or link) a symbolic link.
Refer
Link or rename a file from or to a different directory.
Trait Implementations§
source§impl Access for AccessFs
impl Access for AccessFs
source§fn from_read(abi: ABI) -> BitFlags<Self>
fn from_read(abi: ABI) -> BitFlags<Self>
from_write()
.source§fn from_write(abi: ABI) -> BitFlags<Self>
fn from_write(abi: ABI) -> BitFlags<Self>
from_read()
.