Skip to main content

KernelPermission

Enum KernelPermission 

Source
#[repr(u32)]
pub enum KernelPermission {
Show 52 variants AnonFsNode(AnonFsNodePermission), Binder(BinderPermission), BlkFile(BlkFilePermission), Bpf(BpfPermission), Capability(CapabilityPermission), Capability2(Capability2Permission), ChrFile(ChrFilePermission), Dir(DirPermission), Fd(FdPermission), FifoFile(FifoFilePermission), File(FilePermission), FileSystem(FileSystemPermission), IcmpSocket(IcmpSocketPermission), KeySocket(KeySocketPermission), LnkFile(LnkFilePermission), MemFdFile(MemFdFilePermission), NetlinkAuditSocket(NetlinkAuditSocketPermission), NetlinkConnectorSocket(NetlinkConnectorSocketPermission), NetlinkCryptoSocket(NetlinkCryptoSocketPermission), NetlinkDnrtSocket(NetlinkDnrtSocketPermission), NetlinkFibLookupSocket(NetlinkFibLookupSocketPermission), NetlinkFirewallSocket(NetlinkFirewallSocketPermission), NetlinkGenericSocket(NetlinkGenericSocketPermission), NetlinkIp6FwSocket(NetlinkIp6FwSocketPermission), NetlinkIscsiSocket(NetlinkIscsiSocketPermission), NetlinkKobjectUeventSocket(NetlinkKobjectUeventSocketPermission), NetlinkNetfilterSocket(NetlinkNetfilterSocketPermission), NetlinkNflogSocket(NetlinkNflogSocketPermission), NetlinkRdmaSocket(NetlinkRdmaSocketPermission), NetlinkRouteSocket(NetlinkRouteSocketPermission), NetlinkScsitransportSocket(NetlinkScsitransportSocketPermission), NetlinkSelinuxSocket(NetlinkSelinuxSocketPermission), NetlinkSocket(NetlinkSocketPermission), NetlinkTcpDiagSocket(NetlinkTcpDiagSocketPermission), NetlinkXfrmSocket(NetlinkXfrmSocketPermission), PacketSocket(PacketSocketPermission), PerfEvent(PerfEventPermission), Process(ProcessPermission), Process2(Process2Permission), QipcrtrSocket(QipcrtrSocketPermission), RawIpSocket(RawIpSocketPermission), SctpSocket(SctpSocketPermission), Security(SecurityPermission), SockFile(SockFilePermission), Socket(SocketPermission), System(SystemPermission), TcpSocket(TcpSocketPermission), TunSocket(TunSocketPermission), UdpSocket(UdpSocketPermission), UnixDgramSocket(UnixDgramSocketPermission), UnixStreamSocket(UnixStreamSocketPermission), VsockSocket(VsockSocketPermission),
}
Expand description

Allow callers to use the kernel class & permission definitions. A well-known class in SELinux policy that has a particular meaning in policy enforcement hooks.

Variants§

§

AnonFsNode(AnonFsNodePermission)

The SELinux “anon_inode” object class.

§

Binder(BinderPermission)

The SELinux “binder” object class.

§

BlkFile(BlkFilePermission)

The SELinux “blk_file” object class.

§

Bpf(BpfPermission)

The SELinux “bpf” object class.

§

Capability(CapabilityPermission)

The SELinux “capability” object class.

§

Capability2(Capability2Permission)

The SELinux “capability2” object class.

§

ChrFile(ChrFilePermission)

The SELinux “chr_file” object class.

§

Dir(DirPermission)

The SELinux “dir” object class.

§

Fd(FdPermission)

The SELinux “fd” object class.

§

FifoFile(FifoFilePermission)

The SELinux “fifo_file” object class.

§

File(FilePermission)

The SELinux “file” object class.

§

FileSystem(FileSystemPermission)

The SELinux “filesystem” object class.

§

IcmpSocket(IcmpSocketPermission)

“icmp_socket” class enabled via the “extended_socket_class” policy capability.

§

KeySocket(KeySocketPermission)

The SELinux “key_socket” object class.

§

LnkFile(LnkFilePermission)

The SELinux “lnk_file” object class.

§

MemFdFile(MemFdFilePermission)

The SELinux “memfd_file” object class.

§

NetlinkAuditSocket(NetlinkAuditSocketPermission)

The SELinux “netlink_audit_socket” object class.

§

NetlinkConnectorSocket(NetlinkConnectorSocketPermission)

The SELinux “netlink_connector_socket” object class.

§

NetlinkCryptoSocket(NetlinkCryptoSocketPermission)

The SELinux “netlink_crypto_socket” object class.

§

NetlinkDnrtSocket(NetlinkDnrtSocketPermission)

The SELinux “netlink_dnrt_socket” object class.

§

NetlinkFibLookupSocket(NetlinkFibLookupSocketPermission)

The SELinux “netlink_fib_lookup_socket” object class.

§

NetlinkFirewallSocket(NetlinkFirewallSocketPermission)

The SELinux “netlink_firewall_socket” object class.

§

NetlinkGenericSocket(NetlinkGenericSocketPermission)

The SELinux “netlink_generic_socket” object class.

§

NetlinkIp6FwSocket(NetlinkIp6FwSocketPermission)

The SELinux “netlink_ip6fw_socket” object class.

§

NetlinkIscsiSocket(NetlinkIscsiSocketPermission)

The SELinux “netlink_iscsi_socket” object class.

§

NetlinkKobjectUeventSocket(NetlinkKobjectUeventSocketPermission)

The SELinux “netlink_kobject_uevent_socket” object class.

§

NetlinkNetfilterSocket(NetlinkNetfilterSocketPermission)

The SELinux “netlink_netfilter_socket” object class.

§

NetlinkNflogSocket(NetlinkNflogSocketPermission)

The SELinux “netlink_nflog_socket” object class.

§

NetlinkRdmaSocket(NetlinkRdmaSocketPermission)

The SELinux “netlink_rdma_socket” object class.

§

NetlinkRouteSocket(NetlinkRouteSocketPermission)

The SELinux “netlink_route_socket” object class.

§

NetlinkScsitransportSocket(NetlinkScsitransportSocketPermission)

The SELinux “netlink_scsitransport_socket” object class.

§

NetlinkSelinuxSocket(NetlinkSelinuxSocketPermission)

The SELinux “netlink_selinux_socket” object class.

§

NetlinkSocket(NetlinkSocketPermission)

The SELinux “netlink_socket” object class.

§

NetlinkTcpDiagSocket(NetlinkTcpDiagSocketPermission)

The SELinux “netlink_tcpdiag_socket” object class.

§

NetlinkXfrmSocket(NetlinkXfrmSocketPermission)

The SELinux “netlink_xfrm_socket” object class.

§

PacketSocket(PacketSocketPermission)

The SELinux “packet_socket” object class.

§

PerfEvent(PerfEventPermission)

The SELinux “perf_event” object class.

§

Process(ProcessPermission)

The SELinux “process” object class.

§

Process2(Process2Permission)

The SELinux “process2” object class.

§

QipcrtrSocket(QipcrtrSocketPermission)

The SELinux “qipcrtr_socket” object class.

§

RawIpSocket(RawIpSocketPermission)

The SELinux “rawip_socket” object class.

§

SctpSocket(SctpSocketPermission)

“sctp_socket” class enabled via the “extended_socket_class” policy capability.

§

Security(SecurityPermission)

The SELinux “security” object class.

§

SockFile(SockFilePermission)

The SELinux “sock_file” object class.

§

Socket(SocketPermission)

The SELinux “socket” object class.

§

System(SystemPermission)

The SELinux “system” object class.

§

TcpSocket(TcpSocketPermission)

The SELinux “tcp_socket” object class.

§

TunSocket(TunSocketPermission)

The SELinux “tun_socket” object class.

§

UdpSocket(UdpSocketPermission)

The SELinux “udp_socket” object class.

§

UnixDgramSocket(UnixDgramSocketPermission)

The SELinux “unix_dgram_socket” object class.

§

UnixStreamSocket(UnixStreamSocketPermission)

The SELinux “unix_stream_socket” object class.

§

VsockSocket(VsockSocketPermission)

“vsock_socket” class enabled via the “extended_socket_class” policy capability.

Implementations§

Source§

impl KernelPermission

Source

pub fn name(&self) -> &'static str

Source

pub fn all_variants() -> impl Iterator<Item = Self>

Trait Implementations§

Source§

impl ClassPermission for KernelPermission

Source§

impl Clone for KernelPermission

Source§

fn clone(&self) -> KernelPermission

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for KernelPermission

Source§

impl Debug for KernelPermission

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for KernelPermission

Source§

impl<T: Into<KernelClass>> ForClass<T> for KernelPermission

Source§

fn for_class(&self, class: T) -> KernelPermission

Returns the class-affine KernelPermission value corresponding to this common permission. This is used to allow hooks to resolve e.g. common “sys_nice” permission access based on the “allow” rules for the correct target object class.
Source§

impl From<AnonFsNodePermission> for KernelPermission

Source§

fn from(v: AnonFsNodePermission) -> Self

Converts to this type from the input type.
Source§

impl From<BinderPermission> for KernelPermission

Source§

fn from(v: BinderPermission) -> Self

Converts to this type from the input type.
Source§

impl From<BlkFilePermission> for KernelPermission

Source§

fn from(v: BlkFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<BpfPermission> for KernelPermission

Source§

fn from(v: BpfPermission) -> Self

Converts to this type from the input type.
Source§

impl From<Capability2Permission> for KernelPermission

Source§

fn from(v: Capability2Permission) -> Self

Converts to this type from the input type.
Source§

impl From<CapabilityPermission> for KernelPermission

Source§

fn from(v: CapabilityPermission) -> Self

Converts to this type from the input type.
Source§

impl From<ChrFilePermission> for KernelPermission

Source§

fn from(v: ChrFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<DirPermission> for KernelPermission

Source§

fn from(v: DirPermission) -> Self

Converts to this type from the input type.
Source§

impl From<FdPermission> for KernelPermission

Source§

fn from(v: FdPermission) -> Self

Converts to this type from the input type.
Source§

impl From<FifoFilePermission> for KernelPermission

Source§

fn from(v: FifoFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<FilePermission> for KernelPermission

Source§

fn from(v: FilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<FileSystemPermission> for KernelPermission

Source§

fn from(v: FileSystemPermission) -> Self

Converts to this type from the input type.
Source§

impl From<IcmpSocketPermission> for KernelPermission

Source§

fn from(v: IcmpSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<KeySocketPermission> for KernelPermission

Source§

fn from(v: KeySocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<LnkFilePermission> for KernelPermission

Source§

fn from(v: LnkFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<MemFdFilePermission> for KernelPermission

Source§

fn from(v: MemFdFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkAuditSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkAuditSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkConnectorSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkConnectorSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkCryptoSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkCryptoSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkDnrtSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkDnrtSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkFibLookupSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkFibLookupSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkFirewallSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkFirewallSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkGenericSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkGenericSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkIp6FwSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkIp6FwSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkIscsiSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkIscsiSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkKobjectUeventSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkKobjectUeventSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkNetfilterSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkNetfilterSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkNflogSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkNflogSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkRdmaSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkRdmaSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkRouteSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkRouteSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkScsitransportSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkScsitransportSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkSelinuxSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkSelinuxSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkTcpDiagSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkTcpDiagSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<NetlinkXfrmSocketPermission> for KernelPermission

Source§

fn from(v: NetlinkXfrmSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<PacketSocketPermission> for KernelPermission

Source§

fn from(v: PacketSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<PerfEventPermission> for KernelPermission

Source§

fn from(v: PerfEventPermission) -> Self

Converts to this type from the input type.
Source§

impl From<Process2Permission> for KernelPermission

Source§

fn from(v: Process2Permission) -> Self

Converts to this type from the input type.
Source§

impl From<ProcessPermission> for KernelPermission

Source§

fn from(v: ProcessPermission) -> Self

Converts to this type from the input type.
Source§

impl From<QipcrtrSocketPermission> for KernelPermission

Source§

fn from(v: QipcrtrSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<RawIpSocketPermission> for KernelPermission

Source§

fn from(v: RawIpSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<SctpSocketPermission> for KernelPermission

Source§

fn from(v: SctpSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<SecurityPermission> for KernelPermission

Source§

fn from(v: SecurityPermission) -> Self

Converts to this type from the input type.
Source§

impl From<SockFilePermission> for KernelPermission

Source§

fn from(v: SockFilePermission) -> Self

Converts to this type from the input type.
Source§

impl From<SocketPermission> for KernelPermission

Source§

fn from(v: SocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<SystemPermission> for KernelPermission

Source§

fn from(v: SystemPermission) -> Self

Converts to this type from the input type.
Source§

impl From<TcpSocketPermission> for KernelPermission

Source§

fn from(v: TcpSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<TunSocketPermission> for KernelPermission

Source§

fn from(v: TunSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<UdpSocketPermission> for KernelPermission

Source§

fn from(v: UdpSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<UnixDgramSocketPermission> for KernelPermission

Source§

fn from(v: UnixDgramSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<UnixStreamSocketPermission> for KernelPermission

Source§

fn from(v: UnixStreamSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl From<VsockSocketPermission> for KernelPermission

Source§

fn from(v: VsockSocketPermission) -> Self

Converts to this type from the input type.
Source§

impl Hash for KernelPermission

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for KernelPermission

Source§

fn eq(&self, other: &KernelPermission) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for KernelPermission

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsAny for T
where T: Any,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

Source§

fn type_name(&self) -> &'static str

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<F, N> FidlIntoNative<Box<N>> for F
where F: FidlIntoNative<N>,

§

fn fidl_into_native(self) -> Box<N>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into32<U> for T
where U: MultiArchFrom<T>,

Source§

fn into_32(self) -> U

Source§

impl<T, U> Into64<U> for T
where U: MultiArchFrom<T>,

Source§

fn into_64(self) -> U

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> MultiArchFrom<T> for U
where U: From<T>,

Source§

fn from_64(value: T) -> U

Source§

fn from_32(value: T) -> U

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V