pub enum RootAccessError {
Resolve {
source: Box<RunnerRootError>,
},
Identity {
source: Error,
},
BroadExistingAccess {
path: PathBuf,
dacl: String,
volume: PathBuf,
remediation: String,
},
Create {
path: PathBuf,
source: Error,
remediation: String,
},
Inspect {
path: PathBuf,
source: Error,
remediation: String,
},
Apply {
path: PathBuf,
source: Error,
remediation: String,
},
}Expand description
Why the default runner root could not be created, inspected, or reconciled.
Every variant is printed straight at an operator, so each says what to do
next. None carries an account SID: a message an operator pastes into an issue
should not be the thing that publishes their machine’s identifiers, which is
what redact is applied for before a descriptor reaches one of these.
Variants§
Resolve
The default root could not be resolved, or failed b1’s preflight.
Fields
source: Box<RunnerRootError>What b1 reported.
Identity
This process’s own account could not be identified.
BroadExistingAccess
The root already exists and is open to ordinary local users.
The refusal is the point. Tightening the directory instead would silently adopt whatever is already inside one that any local account could have created and filled, and a runner root’s contents are executed.
Fields
Create
The root does not exist and could not be created.
Fields
Inspect
The root exists but its access control could not be read.
Fields
Apply
The root exists and is not open, but could not be reconciled.
Implementations§
Trait Implementations§
Source§impl Debug for RootAccessError
impl Debug for RootAccessError
Source§impl Display for RootAccessError
impl Display for RootAccessError
Source§impl Error for RootAccessError
impl Error for RootAccessError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()