SECMODEL_EXTENSIONS(9)

πŸ“¦ version 11.0, in nixpkgs unstable

πŸ’– SECMODEL_EXTENSIONS(9) β€” Kernel Developer's Manual πŸ’–

okay so bestie, welcome to the secmodel_extensions(9) page from the Kernel Developer's Manual 🫢 it's literally all about the extensions security model, and yes it's giving main character energy in the kernel ✨


🌸 NAME 🌸

secmodel_extensions β€” extensions security model πŸ’…


✨ DESCRIPTION ✨

so secmodel_extensions implements extensions to the traditional security model based on the original 4.4BSD 🌈 they can be used to grant additional privileges to ordinary users, or enable specific security measures like curtain mode. no cap.

the extensions are described below, bestie πŸ‘‡

πŸŽ€ Curtain mode πŸŽ€

when enabled, all returned objects will be filtered according to the user-id requesting information about them, preventing users from accessing objects they do not own πŸ’… periodt.

it affects the output of many commands, including fstat(1), netstat(1), ps(1), sockstat(1), and w(1) πŸ‘‘ not me checking my own processes and getting filtered, iykyk.

this extension is enabled by setting security.models.extensions.curtain or security.curtain (sysctl(7)) to a non-zero value ✨

it can be enabled at any time, but cannot be disabled anymore when the securelevel of the system is above 0 😭

vibe check bestie: once that securelevel is above 0, this one is staying on β€” no take-backs πŸ’€

πŸ¦‹ Non-superuser mounts πŸ¦‹

when enabled, it allows file-systems to be mounted by an ordinary user who owns the point node and has at least read access to the special device mount(8) arguments 🫢 note that the nosuid and nodev flags must be given for non-superuser mounts.

this extension is enabled by setting security.models.extensions.usermount or vfs.generic.usermount (sysctl(7)) to a non-zero value 🌟

it can be disabled at any time, but cannot be enabled anymore when the securelevel of the system is above 0 πŸ’€

another securelevel check, bestie: above 0, you cannot turn this one on anymore πŸ™ˆ

🌈 Non-superuser control of CPU sets 🌈

when enabled, an ordinary user is allowed to control the CPU affinity(3) of the processes and threads they own 🧚 slay.

this extension is enabled by setting security.models.extensions.user_set_cpu_affinity (sysctl(7)) to a non-zero value πŸ’œ

it can be disabled at any time, but cannot be enabled anymore when the securelevel of the system is above 0 😭

same securelevel vibe: above 0, enabling is off the table, fr fr 🫠

prevent hardlinks to files that the user does not own or has group access to πŸ›‘ the way that this blocks hardlinks is honestly iconic.

to enable user ownership checks, set the sysctl(7) variable security.models.extensions.hardlink_check_uid to a non-zero value ⭐

to enable group membership checks, set the sysctl(7) variable security.models.extensions.hardlink_check_gid to a non-zero value ⭐

these variables can be enabled anytime, but cannot be disabled anymore when the securelevel of the system is above 0 😭

securelevel above 0 = no turning these off anymore, bestie πŸ’…

πŸ‘€ SEE ALSO πŸ‘€

affinity(3), sched(3), sysctl(7), kauth(9), secmodel(9), secmodel_bsd44(9), secmodel_securelevel(9), secmodel_suser(9)

🫢 AUTHORS 🫢

Elad Efrat <elad@NetBSD.org>


kisses πŸ’‹ β€” this one came from Debian, dated March 27, 2022. mwah, bestie πŸŽ€

πŸ“¦ where this page comes from