pub enum ProfileAttachment {
Sealed {
profile: String,
},
Other {
profile: String,
},
Unconfined,
NotReported,
}Expand description
Which AppArmor profile, if any, the kernel reports as confining this process.
AppArmor attaches profiles by executable path, so a mur at a bind mount, a build output or a
test fixture gets no profile however correctly the shipped one is installed. That is invisible
in UsernsGrant alone — it reports UsernsGrant::Withheld identically for “the profile is
not installed” and “the profile is installed and does not attach here” — which is why this is
reported beside it rather than folded into it.
Variants§
Sealed
A profile whose name begins with SEALED_APPARMOR_PROFILE_NAME confines this process —
the shipped profile, or the checkout profile scripts/install-dev-apparmor.sh generates.
The same condition UsernsGrant::ProfileConfining is decided on.
Fields
Other
Some other profile confines this process. It grants nothing murmur asked for, and it may be narrower than unconfined — a snap or a container runtime profile, for instance.
Fields
Unconfined
The kernel reports unconfined: AppArmor is present and no profile attaches to this
binary’s path.
NotReported
/proc/self/attr/current is absent or unreadable — no AppArmor on this host, or not
Linux. Never collapsed into Self::Unconfined, on the same terms
InstalledProfileState::Unreadable is kept apart from
InstalledProfileState::Absent: “nothing attaches” and “I could not look” are different
findings.
Trait Implementations§
Source§impl Clone for ProfileAttachment
impl Clone for ProfileAttachment
Source§impl Debug for ProfileAttachment
impl Debug for ProfileAttachment
impl Eq for ProfileAttachment
Source§impl PartialEq for ProfileAttachment
impl PartialEq for ProfileAttachment
impl StructuralPartialEq for ProfileAttachment
Auto Trait Implementations§
impl Forget for ProfileAttachment
impl Freeze for ProfileAttachment
impl Move for ProfileAttachment
impl RefUnwindSafe for ProfileAttachment
impl Send for ProfileAttachment
impl Sync for ProfileAttachment
impl Unpin for ProfileAttachment
impl UnsafeUnpin for ProfileAttachment
impl UnwindSafe for ProfileAttachment
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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
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<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