mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 04:02:20 +00:00
ad4aff9ec2
Create a system call to report the list of Linux Security Modules that are active on the system. The list is provided as an array of LSM ID numbers. The calling application can use this list determine what LSM specific actions it might take. That might include choosing an output format, determining required privilege or bypassing security module specific behavior. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Serge Hallyn <serge@hallyn.com> Reviewed-by: John Johansen <john.johansen@canonical.com> Reviewed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Paul Moore <paul@paul-moore.com>
74 lines
2.7 KiB
ReStructuredText
74 lines
2.7 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
.. Copyright (C) 2022 Casey Schaufler <casey@schaufler-ca.com>
|
|
.. Copyright (C) 2022 Intel Corporation
|
|
|
|
=====================================
|
|
Linux Security Modules
|
|
=====================================
|
|
|
|
:Author: Casey Schaufler
|
|
:Date: July 2023
|
|
|
|
Linux security modules (LSM) provide a mechanism to implement
|
|
additional access controls to the Linux security policies.
|
|
|
|
The various security modules may support any of these attributes:
|
|
|
|
``LSM_ATTR_CURRENT`` is the current, active security context of the
|
|
process.
|
|
The proc filesystem provides this value in ``/proc/self/attr/current``.
|
|
This is supported by the SELinux, Smack and AppArmor security modules.
|
|
Smack also provides this value in ``/proc/self/attr/smack/current``.
|
|
AppArmor also provides this value in ``/proc/self/attr/apparmor/current``.
|
|
|
|
``LSM_ATTR_EXEC`` is the security context of the process at the time the
|
|
current image was executed.
|
|
The proc filesystem provides this value in ``/proc/self/attr/exec``.
|
|
This is supported by the SELinux and AppArmor security modules.
|
|
AppArmor also provides this value in ``/proc/self/attr/apparmor/exec``.
|
|
|
|
``LSM_ATTR_FSCREATE`` is the security context of the process used when
|
|
creating file system objects.
|
|
The proc filesystem provides this value in ``/proc/self/attr/fscreate``.
|
|
This is supported by the SELinux security module.
|
|
|
|
``LSM_ATTR_KEYCREATE`` is the security context of the process used when
|
|
creating key objects.
|
|
The proc filesystem provides this value in ``/proc/self/attr/keycreate``.
|
|
This is supported by the SELinux security module.
|
|
|
|
``LSM_ATTR_PREV`` is the security context of the process at the time the
|
|
current security context was set.
|
|
The proc filesystem provides this value in ``/proc/self/attr/prev``.
|
|
This is supported by the SELinux and AppArmor security modules.
|
|
AppArmor also provides this value in ``/proc/self/attr/apparmor/prev``.
|
|
|
|
``LSM_ATTR_SOCKCREATE`` is the security context of the process used when
|
|
creating socket objects.
|
|
The proc filesystem provides this value in ``/proc/self/attr/sockcreate``.
|
|
This is supported by the SELinux security module.
|
|
|
|
Kernel interface
|
|
================
|
|
|
|
Set a security attribute of the current process
|
|
-----------------------------------------------
|
|
|
|
.. kernel-doc:: security/lsm_syscalls.c
|
|
:identifiers: sys_lsm_set_self_attr
|
|
|
|
Get the specified security attributes of the current process
|
|
------------------------------------------------------------
|
|
|
|
.. kernel-doc:: security/lsm_syscalls.c
|
|
:identifiers: sys_lsm_get_self_attr
|
|
|
|
.. kernel-doc:: security/lsm_syscalls.c
|
|
:identifiers: sys_lsm_list_modules
|
|
|
|
Additional documentation
|
|
========================
|
|
|
|
* Documentation/security/lsm.rst
|
|
* Documentation/security/lsm-development.rst
|