pub enum ShellEngine {
SafeSubset,
Host,
Brush,
}Expand description
Which shell engine interprets run_command — the ADR 0005 D2 seam. This
is the engine axis (what parses/runs the command line); the L3 backend
axis (Landlock/Seatbelt/AppContainer, the kernel fence) is auto-selected
per-OS and is not chosen here. “Landlock vs brush” is really “the host
engine (guarantee rests entirely on the kernel fence) vs the brush engine
(L2 interceptor confines in-process, with the fence as an added backstop).”
Variants§
SafeSubset
bridle’s argv + safe-subset parser: refuses $(...)/backticks/dynamic
constructs by design and spawns argv directly. Portable default.
Host
The sandboxed-host engine (ADR 0019): real /bin/sh -c with the whole
process tree in the L3 jail. Full grammar; the guarantee rests entirely
on the kernel fence. Refuses a restricted exec/net grant. Needs a
host /bin/sh. --full-access auto-selects this.
Brush
The carried brush engine (bash-in-Rust + the L2 CommandInterceptor):
full grammar, in-process, cross-platform, and the only engine that also
confines a restricted exec/net grant. Requires the brush build
(agent-bridle#20 / Track 2); until that ships, selecting brush falls
back to host with a warning.
Implementations§
Trait Implementations§
Source§impl Clone for ShellEngine
impl Clone for ShellEngine
Source§fn clone(&self) -> ShellEngine
fn clone(&self) -> ShellEngine
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ShellEngine
Source§impl Debug for ShellEngine
impl Debug for ShellEngine
Source§impl Default for ShellEngine
impl Default for ShellEngine
Source§fn default() -> ShellEngine
fn default() -> ShellEngine
Source§impl<'de> Deserialize<'de> for ShellEngine
impl<'de> Deserialize<'de> for ShellEngine
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for ShellEngine
impl Display for ShellEngine
impl Eq for ShellEngine
Source§impl FromStr for ShellEngine
impl FromStr for ShellEngine
Source§impl PartialEq for ShellEngine
impl PartialEq for ShellEngine
Source§fn eq(&self, other: &ShellEngine) -> bool
fn eq(&self, other: &ShellEngine) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for ShellEngine
impl Serialize for ShellEngine
impl StructuralPartialEq for ShellEngine
Auto Trait Implementations§
impl Freeze for ShellEngine
impl RefUnwindSafe for ShellEngine
impl Send for ShellEngine
impl Sync for ShellEngine
impl Unpin for ShellEngine
impl UnsafeUnpin for ShellEngine
impl UnwindSafe for ShellEngine
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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>
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