pub fn landlock_create_ruleset_with_net(
handled_fs: LandlockAccessFs,
handled_net: LandlockAccessNet,
) -> Result<LandlockRuleset, Errno>Expand description
Crée un ruleset Landlock gérant les fichiers ET le réseau (ABI v4+).
§Pourquoi une fonction distincte de landlock_create_ruleset
Le noyau lit exactement size octets d’attributs. Passer la structure à deux champs
à un noyau qui n’en connaît qu’un échoue E2BIG — et la pose de cage étant
fail-closed, cet échec tuerait le processus sur un noyau parfaitement valide.
Garder les deux formes permet à l’appelant de choisir en connaissance de cause, après
avoir interrogé landlock_supported_abi, plutôt que de dégrader en silence. C’est le
même raisonnement qui a fait borner air-sandbox à l’ABI v1 : demander au noyau ce
qu’il ne connaît pas n’est pas une dégradation, c’est une mort.
§Errors
EINVAL: un bit dehandled_fsouhandled_netest inconnu de l’ABI courante ;E2BIG: le noyau ne connaît pas la forme à deux champs (ABI < v4) ;ENOMEM,ENOSYS: commelandlock_create_ruleset.
§Examples
use air_sys_syscall::security::{landlock_create_ruleset_with_net, landlock_supported_abi};
use air_sys_types::security::{LandlockAccessFs, LandlockAccessNet};
// Le réseau n'existe qu'à partir de l'ABI v4 : on demande avant de composer.
if landlock_supported_abi().unwrap_or(0) >= 4 {
let ruleset = landlock_create_ruleset_with_net(
LandlockAccessFs::READ_FILE,
LandlockAccessNet::CONNECT_TCP,
)
.expect("create_ruleset avec réseau");
let _ = ruleset;
}