In this chapter we list the capabilities known to the Linux Kernel. Firstly, we list the POSIX defined capabilities, and then those specific to Linux.
Here we list the POSIX capabilities honored by Linux.
The #define
for the symbol _POSIX_CHOWN_RESTRICTED
, indicates
that this capability (CAP_CHOWN
) is known.
This capability enables the current process to change the owner of a file. Generally, file ownership is not changeable by a user: it is implied by the user that creates it.
The #define
for the symbol _POSIX_ACL, indicates that Access
Control Lists (an implementation of Discretionary Access Control) are
supported by the kernel and that the following capabilities is known:
CAP_DAC_OVERRIDE
.
This capability overrides all DAC restrictions regarding read and search on files and directories, including ACL's.
Overrides all restrictions about allowed operations on files, where file owner ID must be equal to the user ID, except where CAP_FSETID is applicable. It doesn't override MAC and DAC restrictions.
Overrides the following restrictions that the effective user ID shall match the file owner ID when setting the S_ISUID and S_ISGID bits on that file; that the effective group ID (or one of the supplementary group IDs) shall match the file's group owner ID when setting the S_ISGID bit on that file; that the S_ISUID and S_ISGID bits are cleared on successful return from chown(2).
Overrides the restriction that the real or effective user ID of a process sending a signal must match the real or effective user ID of the process receiving the signal.
Overrides the restriction that the real or effective user ID of a process sending a signal must match the real or effective user ID of the process receiving the signal.
Overrides the restriction that a process cannot create or delete a hard link to a directory. This shall not override MAC and DAC policies.
Allows the (re)setting of a files capabilities.
Allows setgid(2) manipulation.
Allows setuid(2) manipulation
Overrides the restriction that no process may block SIGKILL
and
SIGSTOP
.
This capability is available if _POSIX_MAC
is #define
'd. This
capability allows a process to downgrade an object's information
label.
This capability is available if _POSIX_MAC
is
#define
'd. Allows a process to override MAC read restrictions.
This capability is available if _POSIX_MAC
is
#define
'd. Allows a process to modify its own label.
This capability is available if _POSIX_MAC
is
#define
'd. This capability allows a process to upgrade an
object's information label.
This capability is available if _POSIX_MAC
is
#define
'd. This capability overrides the MAC restrictions on
writes.
This capability is available if _POSIX_INF
is
#define
'd. This capability prevents a process' information label
from floating during writes.
This capability is available if _POSIX_INF
is
#define
'd. This capability prevents the process' information
label from floating during reads or executes.
This capability is available if _POSIX_INF
is
#define
'd. This capability allows a process to change an object's
information label.
This capability is available if _POSIX_INF
is
#define
'd. This capability allows a process to modify its own
information label in violation of the overriding policy.
This capability is available if _POSIX_AUD
is
#define
'd. This capability allows a process to modify the audit
control parameters.
This capability is available if _POSIX_AUD
is
#define
'd. This capability allows a process to write data to the
audit trail.
This section lists additional capabilities that are specific to Linux or not covered by the POSIX capability definitions.
Allow modification of S_IMMUTABLE
and S_APPEND
file
attributes.
Permission to act as kerneld.
Allow installation of kernel modules.
Allow removal of kernel modules.
Allow ioperm/iopl access.
Allow configuration of the secure attention key.
Allow administration of the random device.
This sction lists those capabilities commonly found on other systems besides Linux, but which are not specified by POSIX.
Allows binding to TCP/UDP sockets below 1024.
Allow broadcasting.
Allow setting debug option on sockets.
Allow configuring of firewall stuff.
Allow interface configuration.
Allow use of PACKET sockets.
Allow use of RAW sockets.
Allow modification of routing tables.
CAP.FIXME: what is this about?.
Allow locking of segments in memory.
Override IPC ownership checks.
Allow use of chroot().
Allow ptrace() of any process.
Allow configuration of process accounting.
System Admin functions: mount et al.
Allow use of reboot().
Allow device administration.
Allow use of renice() on others, and raising of priority.
Override resource limits.
Allow manipulation of system clock.
Allow configuration of tty devices.
Allow examination and configuration of disk quotas.