avc_has_perm_noaudit(9)
β¨ avc_has_perm_noaudit(9) β¨
okay so bestie, welcome to avc_has_perm_noaudit from the Kernel API Manual β yes it's a section 9 page, yes it's kernel-time, and yes it's lowkey iconic π
π NAME π
avc_has_perm_noaudit β check permissions but perform no auditing. like, she checks the vibes and says yes or no, but she does NOT write it in the group chat. no receipts, no paper trail, we move in silence π€«
πΈ SYNOPSIS πΈ
int avc_has_perm_noaudit (u32 ssid , u32 tsid , u16 tclass , u32
requested , unsigned int flags , struct av_decision *avd );
that's the whole signature, don't @ me, it's giving six-argument main character energy π
π¦ ARGUMENTS π¦
ssidβ source security identifier. the "who's asking" SID, the origin story π«tsidβ target security identifier. the "who are they asking about" SID, the other half of the ship π«Άtclassβ target security class. this is the category the permissions get read through, so like, context is everything bestierequestedβ the requested permissions, interpreted based ontclass. yes literally, the meaning depends ontclass, so don't come at it sidewaysflagsβAVC_STRICTor0. two choices, that's the whole menu πavdβ access vector decisions. the output spot where the decisions get copied π
π₯ DESCRIPTION π₯
so the whole thing is: check the AVC to determine whether the requested permissions are granted for the SID pair (ssid, tsid), interpreting the permissions based on tclass, and call the security server on a cache miss to obtain a new decision and add it to the cache. periodt π
then she returns a copy of the decisions in avd. cute, right? π
the return values are:
0if all requested permissions are granted β slay, we love a yes-EACCESif any permissions are denied β not slay, but at least she told you- another
-errnoupon other errors β it's giving "something else went wrong, check the errno bestie"
fr fr, this function is typically called by avc_has_perm, but may also be called directly to separate permission checking from auditing, e.g. in cases where a lock must be held for the check but should be released for the auditing. that's the whole reason she exists β the lock-holding part and the auditing part have different vibes and you gotta keep 'em apart ππ
π SEE ALSO π
kernel file ./security/selinux/avc.c β go read the source, iykyk πβ¨ and also these icons:
avc_init(9)avc_lookup(9)avc_insert(9)avc_audit_pre_callback(9)avc_audit_post_callback(9)avc_add_callback(9)avc_update_node(9)avc_flush(9)avc_ss_reset(9)avc_compute_av(9)avc_perm_nonode(9)avc_has_perm(9)
and that's the page bestie, no cap, every flag accounted for, go check some perms π§π
okay bye ily, this one's brought to you by ./security/selinux, October 2026 edition β and yes, avc_has_perm_noaudit(9) is literally the title, we came full circle πβ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms