landlock_trace_denial(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… landlock_trace_denial(9) πŸ’…

okay so this is a page from the Kernel API Manual and honestly? it's giving "tiny function, big feelings." bestie, let's get into it 🫢


✨ NAME ✨

landlock_trace_denial β€” the little guy that emits a tracepoint whenever an access request gets denied πŸ™ˆβœ¨

πŸ¦‹ SYNOPSIS πŸ¦‹

void landlock_trace_denial (const struct landlock_request *const request
, const struct landlock_hierarchy *const youngest_denied , const
access_mask_t missing , const bool same_exec , const bool logged );

like, yes, that's the whole signature. she's compact. she's iconic. no cap πŸ’…

πŸŽ€ ARGUMENTS πŸŽ€

  • request β€” all the deets about the user space request πŸ‘‘
  • youngest_denied β€” the youngest hierarchy node that denied the access. literally the baby of the family doing the rejecting 😭 (const struct landlock_hierarchy *const)
  • missing β€” the final missing access subset, when applicable (access_mask_t)
  • same_exec β€” records whether the policy subject is the same executable that called landlock_restrict_self for the denying domain, as computed by landlock_log_denial. fr fr, that's the whole vibe check 🧚
  • logged β€” whether the domain's policy selects this denial for logging, as computed by landlock_log_denial 🌸

πŸ”₯ DESCRIPTION πŸ”₯

So what does she actually do? She emits the tracepoint matching request->type when its event is enabled. periodt ✨

and here's the part that matters: unlike audit, it fires regardless of logged. the value gets recorded in the event so consumers can filter on it themselves. no gatekeeping πŸ’€

She gets called from landlock_log_denial β€” that's her main character origin story 🌈

πŸ‘‘ SEE ALSO πŸ‘‘


okay that's the whole page, bestie, you ate that πŸ“πŸ’– and for the cute sign-off: this one lives in ./security/landlock, dated October 2026, and it's landlock_trace_denial(9) all day every day β­πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from