pub struct SymlinkAwareSandbox { /* private fields */ }Expand description
Sandbox that follows symlinks in the root directory.
Like FsSandbox, but also allows access to targets of symlinks
found directly under the root. This is designed for package managers
(e.g. npm link / alc_pkg_link) where the root directory contains
symlinks pointing to external source directories.
§How it works
At construction time, scans the root for symlink entries and records
their canonical targets as additional allowed roots. During read(),
a file is permitted if its canonical path is under the root or
under any of the recorded symlink targets.
§Security boundary
Same as FsSandbox: casual escape prevention for trusted directories.
The allowed target set is fixed at construction time; symlinks added
after construction are not recognized until a new instance is created.
Implementations§
Trait Implementations§
Source§impl SandboxedFs for SymlinkAwareSandbox
impl SandboxedFs for SymlinkAwareSandbox
Auto Trait Implementations§
impl Freeze for SymlinkAwareSandbox
impl RefUnwindSafe for SymlinkAwareSandbox
impl Send for SymlinkAwareSandbox
impl Sync for SymlinkAwareSandbox
impl Unpin for SymlinkAwareSandbox
impl UnsafeUnpin for SymlinkAwareSandbox
impl UnwindSafe for SymlinkAwareSandbox
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more