pub struct RestrictionSet { /* private fields */ }Expand description
Liste blanche de ce qu’un ring confiné pourra faire (décision S3).
Default-deny : ce qui n’est pas explicitement autorisé est refusé par le
kernel. Construite par combinateurs, puis passée à
IoUringBuilder::restrict via
as_slice.
Default = ensemble vide : aucune restriction (le ring n’est pas
confiné). Le confinement commence dès la première entrée (allow_* /
require_*).
Implementations§
Source§impl RestrictionSet
impl RestrictionSet
Sourcepub fn allow_op(self, op: IoUringOpcode) -> Self
pub fn allow_op(self, op: IoUringOpcode) -> Self
Autorise un opcode de soumission (RESTRICTION_SQE_OP). Dès le premier
allow_op, seuls les opcodes listés passent (default-deny).
Sourcepub fn allow_register(self, op: RegisterOp) -> Self
pub fn allow_register(self, op: RegisterOp) -> Self
Autorise un register opcode (RESTRICTION_REGISTER_OP).
Sourcepub fn allow_sqe_flags(self, flags: SqeFlagSet) -> Self
pub fn allow_sqe_flags(self, flags: SqeFlagSet) -> Self
Déclare les drapeaux SQE autorisés (RESTRICTION_SQE_FLAGS_ALLOWED) :
un SQE ne peut porter que des drapeaux de cet ensemble.
Sourcepub fn require_sqe_flags(self, flags: SqeFlagSet) -> Self
pub fn require_sqe_flags(self, flags: SqeFlagSet) -> Self
Déclare les drapeaux SQE requis sur chaque soumission
(RESTRICTION_SQE_FLAGS_REQUIRED) : un SQE sans ces drapeaux est refusé.
Combiné à SqeFlagSet::fixed_file, impose l’usage de FD enregistrés
(interdit les FD bruts — moindre privilège).
Sourcepub fn from_entitlements<I>(allowed_ops: I) -> Selfwhere
I: IntoIterator<Item = IoUringOpcode>,
pub fn from_entitlements<I>(allowed_ops: I) -> Selfwhere
I: IntoIterator<Item = IoUringOpcode>,
Point d’intégration couche 5 (ADR-010). Un composant de confiance
(air-launchd/air-trust) traduit les entitlements signés du
manifeste d’un .airservice/.airapp en l’ensemble d’opcodes que le ring
pourra émettre, puis appelle ceci. La politique (quel entitlement ⇒
quels opcodes) vit en couche 5 ; la couche 0 ne fournit que le mécanisme
default-deny. Équivaut à un allow_op répété sur allowed_ops.
Sourcepub fn as_slice(&self) -> &[Restriction]
pub fn as_slice(&self) -> &[Restriction]
Vue des restrictions, à passer à
IoUringBuilder::restrict.
Trait Implementations§
Source§impl Clone for RestrictionSet
impl Clone for RestrictionSet
Source§fn clone(&self) -> RestrictionSet
fn clone(&self) -> RestrictionSet
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more