name (Linux) | https://jlk.fjfi.cvut.cz/arch/manpages/man/capabilities.7 | cn-38-cvut.cz | https://en.wikibooks.org/wiki/Grsecurity/Appendix/Capability_Names_and_Descriptions | https://forums.grsecurity.net/viewtopic.php?f=7&t=2522&sid=c6fbcf62fd5d3472562540a7e608ce4e#p10271 |
cap_mknod (2.4) | Create special files using mknod(2). | 使用mknod(2)创建特殊文件。 | 允许mknod()的特权方面。 | 允许创建非root用户拥有的块设备, 该块设备与(例如)系统磁盘是同一设备(在grsecurity上, 访问该块设备也将需要cap_sys_rawio). 这允许对系统上的任何二进制文件进行后门操作. |
cap_audit_control (2.6.11) | Enable and disable kernel auditing; change auditing filter rules; retrieve auditing status and filtering rules. | 启用和禁用内核审核; 更改审核过滤器规则; 检索审核状态和过滤规则。 | 允许管理内核的审核系统。 | 到审计子系统的audit_tty_get/audit_tty_set netlink命令允许记录和检索tty i/o, 从而获得root密码 |
cap_setfcap (2.6.24) | Set arbitrary capabilities on a file. | 在文件上设置任意功能。 | 允许设置文件功能。 | 可以对文件设置全部功能, 在执行时授予全部功能 |
cap_chown | Make arbitrary changes to file UIDs and GIDs (see chown(2)). | 对文件UID和GID进行任意更改 | 在定义了[_posix_chown_restricted]选项的系统中,这将覆盖更改文件所有权和组所有权的限制。 | /etc/shadow、/root/.ssh/*可以通过所有权更改被盗或修改, 从而允许完整的root用户 |
cap_dac_override | Bypass file read, write, and execute permission checks. (DAC is an abbreviation of "discretionary access control".) | 绕过文件读取, 写入和执行权限检查。(DAC是“自由访问控制”的缩写。) | 如果定义了[_posix_acl],则覆盖所有dac访问,包括acl执行访问。 不包括cap_linux_immutable涵盖的dac访问。 | 与cap_dac_read_search相同的旁路, 也可以修改由root执行的非suid二进制文件以具有全部特权执行代码(修改suid根二进制文件供您执行将需要cap_fsetid, 因为否则setuid位会在修改时清除;多亏了eric paris ). 可以如上所述修改modprobe sysctl以执行具有全部功能的代码. |
cap_dac_read_search | Bypass file read permission checks and directory read and execute permission checks; invoke open_by_handle_at(2); use the linkat(2) AT_EMPTY_PATH flag to create a link to a file referred to by a file descriptor. | 绕过文件读取权限检查以及目录读取和执行权限检查; 调用open_by_handle_at(2) ; 使用linkat(2) AT_EMPTY_PATH标志创建到文件描述符引用的文件的链接。 | 如果定义了[_posix_acl],则覆盖所有关于文件和目录的读取和搜索的dac限制,包括acl限制。 不包括cap_linux_immutable涵盖的dac访问。 | /etc/shadow、/root/.ssh/*可以读取, 从而允许完整的root用户 |
cap_fowner | Bypass permission checks on operations that normally require the filesystem UID of the process to match the UID of the file (e.g., chmod(2), utime(2)), excluding those operations covered by CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH; set inode flags (see ioctl_iflags(2)) on arbitrary files; set Access Control Lists (ACLs) on arbitrary files; ignore directory sticky bit on file deletion; modify user extended attributes on sticky directory owned by any user; specify O_NOATIME for arbitrary files in open(2) and fcntl(2). | 绕过权限检查通常需要进程的文件系统UID匹配文件的UID的操作(例如 chmod(2), utime(2)), 但CAP_DAC_OVERRIDE和CAP_DAC_READ_SEARCH所覆盖的那些操作 除外; 在任意文件上设置inode标志(请参阅ioctl_iflags(2)); 在任意文件上设置访问控制列表(ACL); 在删除文件时忽略目录粘贴位; 修改任何用户拥有的粘性目录上的用户扩展属性; 为open(2)和 fcntl(2)中的任意文件指定O_NOATIME。 | 覆盖关于文件上允许的操作的所有限制,其中文件所有者id必须等于用户id,但适用cap_fsetid的情况除外。 它不会覆盖mac和dac限制。 | 允许任意的chmod, 从而允许chmod 777/etc/shadow读取/修改根密码并获得对系统的完全访问权限 |
cap_net_admin | Perform various network-related operations: interface configuration; administration of IP firewall, masquerading, and accounting; modify routing tables; bind to any address for transparent proxying; set type-of-service (TOS); clear driver statistics; set promiscuous mode; enabling multicasting; use setsockopt(2) to set the following socket options: SO_DEBUG, SO_MARK, SO_PRIORITY (for a priority outside the range 0 to 6), SO_RCVBUFFORCE, and SO_SNDBUFFORCE. | 执行各种与网络相关的操作: 接口配置; IP防火墙的管理, 伪装和计费; 修改路由表; 绑定到任何地址以进行透明代理; 设置服务类型(TOS); 清除驾驶员统计信息; 设置混杂模式; 启用多播; 使用setsockopt(2)设置以下套接字选项: SO_DEBUG, SO_MARK, SO_PRIORITY(对于0到6之外的优先级), SO_RCVBUFFORCE和 SO_SNDBUFFORCE。 | 允许接口配置。 允许管理ip防火墙,伪装和计费。 允许在套接字上设置调试选项。 允许修改路由表。 允许在套接字上设置任意进程/进程组所有权。 允许绑定到任何地址以进行透明代理。 允许设置tos(服务类型)。 允许设置混杂模式。 允许清除驱动程序统计信息。 允许多播。 允许读/写设备专用寄存器。 允许激活atm控制插座。 | 除其他功能外, 还可以管理防火墙, 从而可以将发往系统网络服务的数据包重定向到木马服务, 以窃取凭据或利用客户端. 2009年8月至2011年3月之间的内核还允许具有cap_net_admin的用户加载普通搜索路径中的任何模块(例如: ifconfig xfs加载xfs模块(如果存在)), 从而增加了内核的攻击面 |
cap_net_raw | Use RAW and PACKET sockets; bind to any address for transparent proxying. | 使用RAW和PACKET插槽; 绑定到任何地址以进行透明代理。 | 允许使用raw插槽。 允许使用packet插槽。 | 可以嗅探并将任何本地网络服务重定向到特洛伊木马, 类似于cap_net_admin攻击(感谢下面的评论者) |
cap_setpcap | If file capabilities are supported (i.e., since Linux 2.6.24): add any capability from the calling thread's bounding set to its inheritable set; drop capabilities from the bounding set (via prctl(2) PR_CAPBSET_DROP); make changes to the securebits flags. If file capabilities are not supported (i.e., kernels before Linux 2.6.24): grant or remove any capability in the caller's permitted capability set to or from any other process. (This property of CAP_SETPCAP is not available when the kernel is configured to support file capabilities, since CAP_SETPCAP has entirely different semantics for such kernels.) | 如果支持文件功能(例如, 从Linux 2.6.24开始): 将调用线程边界集的任何功能添加到其可继承集; 从边界集中删除功能(通过prctl(2) PR_CAPBSET_DROP); 更改securebits标志。 如果不支持文件功能(例如, Linux 2.6.24之前的内核): 在任何其他进程中调用方的允许功能集中授予或删除任何功能。(的此属性 CAP_SETPCAP当内核被配置为支持文件能力, 因为不提供CAP_SETPCAP具有用于这样的内核完全不同的语义。) | 没有vfs对功能的支持: 将许可集中的任何功能转移到任何pid,将许可集中的任何功能从任何pid中删除。 借助vfs对功能的支持(以上均不支持)。 将当前能力边界集中的任何能力添加到当前流程的可继承集合中。 允许将比特移出功能边界集。 允许修改进程的安全位。 | 如果尚未降低当前进程的有界集合, 则可以通过修改可继承集合在子进程中获得任何功能. 此功能允许绕过限制, 该限制要求功能处于子进程继承的当前进程的允许集中. |
cap_setuid | Make arbitrary manipulations of process UIDs (setuid(2), setreuid(2), setresuid(2), setfsuid(2)); forge UID when passing socket credentials via UNIX domain sockets; write a user ID mapping in a user namespace (see user_namespaces(7)). | 对进程UID进行任意操作(setuid(2), setreuid(2), setresuid(2), setfsuid(2)); 通过UNIX域套接字传递套接字凭证时伪造UID; 在用户名称空间中编写用户ID映射(请参阅 user_namespaces(7))。 | 允许set * uid(2)操作(包括fsuid)。 允许套接字凭据传递时使用伪造的pid。 | 可以将实际uid设置为0并在exec上获得全部功能. 也可以用于忽略对unix域套接字的凭据检查, 并通过假定的安全通道馈送精心制作的数据. 也可以用作有效的cap_sys_ptrace替换(您可以更改为任何uid, 因此可以跟踪任何进程). |
cap_sys_admin | Note: this capability is overloaded; see Notes to kernel developers, below. Perform a range of system administration operations including: quotactl(2), mount(2), umount(2), pivot_root(2), swapon(2), swapoff(2), sethostname(2), and setdomainname(2); perform privileged syslog(2) operations (since Linux 2.6.37, CAP_SYSLOG should be used to permit such operations); perform VM86_REQUEST_IRQ vm86(2) command; perform IPC_SET and IPC_RMID operations on arbitrary System V IPC objects; override RLIMIT_NPROC resource limit; perform operations on trusted and security extended attributes (see xattr(7)); use lookup_dcookie(2); use ioprio_set(2) to assign IOPRIO_CLASS_RT and (before Linux 2.6.25) IOPRIO_CLASS_IDLE I/O scheduling classes; forge PID when passing socket credentials via UNIX domain sockets; exceed /proc/sys/fs/file-max, the system-wide limit on the number of open files, in system calls that open files (e.g., accept(2), execve(2), open(2), pipe(2)); employ CLONE_* flags that create new namespaces with clone(2) and unshare(2) (but, since Linux 3.8, creating user namespaces does not require any capability); call perf_event_open(2); access privileged perf event information; call setns(2) (requires CAP_SYS_ADMIN in the target namespace); call fanotify_init(2); call bpf(2); perform privileged KEYCTL_CHOWN and KEYCTL_SETPERM keyctl(2) operations; perform madvise(2) MADV_HWPOISON operation; employ the TIOCSTI ioctl(2) to insert characters into the input queue of a terminal other than the caller's controlling terminal; employ the obsolete nfsservctl(2) system call; employ the obsolete bdflush(2) system call; perform various privileged block-device ioctl(2) operations; perform various privileged filesystem ioctl(2) operations; perform privileged ioctl(2) operations on the /dev/random device (see random(4)); install a seccomp(2) filter without first having to set the no_new_privs thread attribute; modify allow/deny rules for device control groups; employ the ptrace(2) PTRACE_SECCOMP_GET_FILTER operation to dump tracee's seccomp filters; employ the ptrace(2) PTRACE_SETOPTIONS operation to suspend the tracee's seccomp protections (i.e., the PTRACE_O_SUSPEND_SECCOMP flag); perform administrative operations on many device drivers. Modify autogroup nice values by writing to /proc/[pid]/autogroup (see sched(7)). | 注意: 此功能过载; 请参阅下面的内核开发人员说明。 执行一系列系统管理操作, 包括: quotactl(2), mount(2), umount(2), pivot_root(2), swapon(2), swapoff(2), sethostname(2)和setdomainname(2); 执行特权的syslog(2)操作(从Linux 2.6.37开始, 应使用CAP_SYSLOG允许此类操作); 执行VM86_REQUEST_IRQ vm86(2)命令; 对任意System V IPC对象执行IPC_SET和IPC_RMID操作; 覆盖RLIMIT_NPROC资源限制; 对可信和安全扩展属性执行操作(请参阅xattr(7)); 使用lookup_dcookie(2) ; 使用ioprio_set(2)分配IOPRIO_CLASS_RT和(在Linux 2.6.25之前)IOPRIO_CLASS_IDLE I/O调度类; 通过UNIX域套接字传递套接字凭证时伪造PID; 超过/ proc/sys/fs/file-max, 即系统范围内打开文件数量的限制, 在打开文件的系统调用中(例如accept(2), execve(2), open(2), pipe( 2)); 使用CLONE_ *标志创建带有clone(2)和unshare(2)的新名称空间 (但是, 从Linux 3.8开始, 创建用户名称空间不需要任何功能); 调用perf_event_open(2) ; 访问特权PERF事件信息; 调用setns(2)(在目标 名称空间中需要CAP_SYS_ADMIN); 调用highlight_init(2) ; 致电bpf(2) ; 执行特权KEYCTL_CHOWN和KEYCTL_SETPERM keyctl(2)操作; 执行madvise(2) MADV_HWPOISON操作; 使用TIOCSTI ioctl(2)将字符插入到呼叫者控制终端以外的终端的输入队列中; 使用过时的nfsservctl(2)系统调用; 使用过时的bdflush(2)系统调用; 执行各种特权块设备ioctl(2)操作; 执行各种特权文件系统ioctl(2)操作; 在/ dev/random 设备上执行特权ioctl(2)操作(请参阅random(4)); 安装seccomp(2)过滤器, 而无需首先设置 no_new_privs线程属性; 修改设备控制组的允许/拒绝规则; 使用ptrace(2) PTRACE_SECCOMP_GET_FILTER操作来转储Tracee的seccomp过滤器; 使用ptrace(2) PTRACE_SETOPTIONS操作来挂起跟踪的seccomp保护(即 PTRACE_O_SUSPEND_SECCOMP标志); 在许多设备驱动程序上执行管理操作。 通过写入/ proc/[pid]/autogroup来修改autogroup nice值 (请参阅sched(7))。 | 允许配置安全注意密钥。 允许管理随机设备。 允许检查和配置磁盘配额。 允许配置内核的syslog(printk行为)。 允许设置域名。 允许设置主机名。 允许调用bdflush()。 允许mount()和umount(),建立新的smb连接。 允许一些autofs根ioctl。 允许nfsservctl。 允许vm86_request_irq。 允许在alpha上读写pci配置。 在mips(setstacksize)上允许irix_prctl。 允许刷新m68k上的所有缓存(sys_cacheflush)。 允许删除信号量。用于代替cap_chown来“阻塞” ipc消息队列,信号量和共享内存。 允许锁定/解锁共享内存段。 允许打开/关闭交换。 允许在套接字凭据传递中使用伪造的pid。 允许在块设备上设置预读和刷新缓冲区。 允许在软驱中设置几何。 允许在xd驱动程序中打开/关闭dma。 允许管理md设备(大多数情况下,但还有一些额外的ioctl)。 允许调整ide驱动程序。 允许访问nvram设备。 允许管理apm_bios,串行和bttv(tv)设备。 允许在isdn capi支持驱动程序中使用制造商命令。 允许读取pci配置空间的非标准化部分。 允许在sbpcd驱动程序上进行ddi调试ioctl。 允许设置串行端口。 允许发送原始的qic–117命令。 允许在scsi控制器上启用/禁用标记队列并发送任意scsi命令。 允许在回送文件系统上设置加密密钥。 允许设置区域回收策略。 | 除其他外(这是一种包罗万象的功能选择), cap_sys_admin授予了挂载/卸载文件系统的能力. 因此, 您可以在现有文件系统上绑定安装新文件系统, 以后门系统上的任何二进制文件. 似乎没有对此操作进行任何dac检查, 因此功能本身就足够了. cap_sys_admin还授予对/ dev/tty(我们不拥有的tty)使用tiocsti ioctl并将命令注入到管理员外壳中的能力, 该外壳将在无需任何交互的情况下执行. |
cap_sys_boot | Use reboot(2) and kexec_load(2). | 使用reboot(2)和kexec_load(2)。 | 允许使用reboot()允许使用kexec()syscall | 加载新内核以使用kexec_load引导 |
cap_sys_chroot | Use chroot(2); change mount namespaces using setns(2). | 使用chroot(2) ; 使用setns(2)更改安装名称空间。 | 允许使用chroot()。 | 来自julien tinnes/chris evans的文章: 如果您具有与suid根二进制文件相同的文件系统的写访问权, 请使用后门libc设置chroot环境, 然后在chroot中执行硬链接的suid根二进制文件, 并通过后门获得完整的root特权. |
cap_sys_module | Load and unload kernel modules (see init_module(2) and delete_module(2)); in kernels before 2.6.25: drop capabilities from the system-wide capability bounding set. | 加载和卸载内核模块(请参阅init_module(2)和 delete_module(2)); 在2.6.25之前的内核中: 从系统范围的功能边界集中删除功能。 | 插入和删除内核模块–无限修改内核。 | 允许修改内核 |
cap_sys_ptrace | Trace arbitrary processes using ptrace(2); apply get_robust_list(2) to arbitrary processes; transfer data to or from the memory of arbitrary processes using process_vm_readv(2) and process_vm_writev(2); inspect processes using kcmp(2). | 使用ptrace(2)跟踪任意进程; 将get_robust_list(2)应用于任意进程; 使用process_vm_readv(2)和process_vm_writev(2)在任意进程的内存之间传输数据 ; 使用kcmp(2)检查进程。 | 允许任何进程使用ptrace()。 | ptrace跟踪具有所需功能的任何uid的进程, 以poketext/setregs的方式控制流劫持和在全部功能下执行代码的方式. |
cap_sys_rawio | Perform I/O port operations (iopl(2) and ioperm(2)); access /proc/kcore; employ the FIBMAP ioctl(2) operation; open devices for accessing x86 model-specific registers (MSRs, see msr(4)); update /proc/sys/vm/mmap_min_addr; create memory mappings at addresses below the value specified by /proc/sys/vm/mmap_min_addr; map files in /proc/bus/pci; open /dev/mem and /dev/kmem; perform various SCSI device commands; perform certain operations on hpsa(4) and cciss(4) devices; perform a range of device-specific operations on other devices. | 执行I/O端口操作(iopl(2)和ioperm(2)); 访问/ proc/kcore ; 采用FIBMAP ioctl(2)操作; 打开用于访问特定于x86模型的寄存器(MSR, 请参阅 msr(4))的设备; 更新/ proc/sys/vm/mmap_min_addr ; 在/ proc/sys/vm/mmap_min_addr指定的值以下的地址创建内存映射 ; 映射文件在/ proc/bus/pci中; 打开/ dev/mem和/ dev/kmem ; 执行各种SCSI设备命令; 在hpsa(4)和cciss(4) 设备上执行某些操作; 在其他设备上执行一系列特定于设备的操作。 | 允许ioperm / iopl访问. 允许通过/ proc / bus / usb'将usb消息发送到任何设备 | 允许映射null页, 以利用linux中大量的null指针取消引用. cap_sys_rawio还支持fibmap ioctl的使用, 它可能会通过处理来自不受信任来源的意外输入来处理内核(请参阅: http://lkml.indiana.edu/hypermail/linux .. . /0132.html(因为获得fibmap特权的原因)和http://linux.derkeiler.com/mailing-list ... 07723.html进行了进一步讨论). |
cap_sys_tty_config | Use vhangup(2); employ various privileged ioctl(2) operations on virtual terminals. | 使用vhangup(2) ; 在虚拟终端上使用各种特权的ioctl(2)操作。 | 允许配置tty设备。 允许tty的vhangup()。 | 暂时通过kdsetkeycode ioctl更改管理员tty的键盘映射, 以导致执行与预期不同的命令(2.4版本中以前仅受suser()保护(本质上是uid == 0检查), 但在grsecurity中除外) |
cap_fsetid | Don't clear set-user-ID and set-group-ID mode bits when a file is modified; set the set-group-ID bit for a file whose GID does not match the filesystem or any of the supplementary GIDs of the calling process. | 修改文件时, 请勿清除set-user-ID和set-group-ID模式位。 将GID与文件系统或调用过程的任何补充GID不匹配的文件的set-group-ID位置1。 | 覆盖以下限制,即在该文件上设置s_isuid和s_isgid位时,有效用户id必须与文件所有者id相匹配;当在文件上设置s_isgid位时,有效组id(或补充组id之一)应与文件所有者id相匹配;从chown(2)成功返回时未清除s_isuid和s_isgid位(未实现)。 | 可以升级为gid =0. 如果内核是作为root编译的, 则内核源代码树中的某些目录/文件在默认情况下似乎可写为gid 0(在我的ubuntu 10.10测试系统上). 这可以允许内核后门. 在基于debian的系统上, 您可以升级为gid = staff, 这允许对/ usr/local中的任何二进制文件进行后门操作(或基本上所有其他没有其完整路径的二进制文件都进行后门操作, 因为/ usr/local通常在$ path中首先出现). 正如蒂姆·布朗(tim brown)所述: 由于gid = staff, 因此可以在/ usr/local/lib中放置一个特洛伊木马库, 在重建缓存后, 该木马库将比其他库搜索路径中的木马库更受青睐, 从而可以完全控制非木马程序中运行的代码. 静态suid根二进制文件. |
cap_ipc_owner | Bypass permission checks for operations on System V IPC objects. | 绕过权限检查对System V IPC对象的操作。 | 覆盖ipc所有权检查。 | 通过能够利用其ipc是私有的假设, 损害ipc的特权用户 |
cap_kill | Bypass permission checks for sending signals (see kill(2)). This includes use of the ioctl(2) KDSIGACCEPT operation. | 绕过许可检查以发送信号(请参阅kill(2))。这包括使用ioctl(2) KDSIGACCEPT操作。 | 超越了以下限制:发送信号的进程的真实或有效用户id必须与接收信号的进程的真实或有效用户id相匹配。 | 如果网络服务是通过大于1024的非标准端口运行的, 则可以使用cap_kill来定位现有进程, 然后非root用户可以在其位置启动木马服务以在某些情况下窃取凭据, 或者剥削客户. 与cap_net_bind_service结合使用, 可以在任何端口上完成此操作. |
cap_setgid | Make arbitrary manipulations of process GIDs and supplementary GID list; forge GID when passing socket credentials via UNIX domain sockets; write a group ID mapping in a user namespace (see user_namespaces(7)). | 任意处理进程GID和补充GID列表; 通过UNIX域套接字传递套接字凭证时, 伪造GID; 在用户名称空间中编写组ID映射(请参阅 user_namespaces(7))。 | 允许setgid(2)操作。 允许setgroups(2)。 允许通过套接字凭证的伪造gid。 | 与cap_fsetid相同. |
cap_lease (2.4) | Establish leases on arbitrary files (see fcntl(2)). | 在任意文件上建立租约 | 允许租借文件。 | |
cap_audit_write (2.6.11) | Write records to kernel auditing log. | 将记录写入内核审核日志。 | 允许发出审核消息。 | |
cap_mac_admin (2.6.25) | Allow MAC configuration or state changes. Implemented for the Smack Linux Security Module (LSM). | 允许MAC配置或状态更改。为Smack Linux安全模块(LSM)实现。 | 允许mac配置或状态更改。基本内核不需要mac配置。 lsm可以强制执行mac策略,如果这样做,它会选择基于对策略的修改或维护该策略所需数据的检查来实施功能,这就是它应该使用的功能。 | |
cap_mac_override (2.6.25) | Override Mandatory Access Control (MAC). Implemented for the Smack LSM. | 覆盖强制访问控制(MAC)。为Smack LSM实施。 | 覆盖mac访问。基本内核不执行任何mac策略。 lsm可能会强制执行mac策略,如果确实如此,并且它选择实现该策略基于能力的替代,这就是它应该使用的能力。 | |
cap_syslog (2.6.37) | Perform privileged syslog(2) operations. See syslog(2) for information on which operations require privilege. View kernel addresses exposed via /proc and other interfaces when /proc/sys/kernel/kptr_restrict has the value 1. (See the discussion of the kptr_restrict in proc(5).) | 执行特权的syslog(2)操作。有关哪些操作需要特权的信息, 请参见syslog(2)。 通过暴露视图内核地址/ PROC和其他接口时 的/ proc/SYS /内核/ kptr_restrict具有值1(见的讨论kptr_restrict在PROC(5) 。) | 允许配置内核的syslog(printk行为)。 | |
cap_wake_alarm (3.0) | Trigger something that will wake up the system (set CLOCK_REALTIME_ALARM and CLOCK_BOOTTIME_ALARM timers). | 触发一些会唤醒系统的事件(设置 CLOCK_REALTIME_ALARM和CLOCK_BOOTTIME_ALARM计时器)。 | 允许触发将唤醒系统的操作。 | |
cap_audit_read (3.16) | Allow reading the audit log via a multicast netlink socket. | 允许通过多播netlink套接字读取审核日志。 | | |
cap_block_suspend (3.5) | Employ features that can block system suspend (epoll(7) EPOLLWAKEUP, /proc/sys/wake_lock). | 使用可以阻止系统挂起的功能 (epoll(7) EPOLLWAKEUP, /proc/sys/wake_lock). | | |
cap_ipc_lock | Lock memory (mlock(2), mlockall(2), mmap(2), shmctl(2)). | 锁定内存 | 允许锁定共享内存段。 允许mlock和mlockall(与ipc无关)。 | |
cap_linux_immutable | Set the FS_APPEND_FL and FS_IMMUTABLE_FL inode flags (see ioctl_iflags(2)). | 设置FS_APPEND_FL和FS_IMMUTABLE_FL inode标志 | 允许修改s_immutable和s_append文件属性。 | cap_linux_immutable很有趣. 不可变的标志禁止"mv”, 也禁止"chmod”和"chown”(chattr联机帮助页中未提及)以及通过">”和">>”进行重定向. 这意味着在没有"set -e”的shell脚本中, 这些操作将无提示地失败, 并且脚本继续. 发生非常频繁, 但这需要一些相当特殊的脚本才能被利用. 例如. 一个防火墙框架, 该框架可动态创建带有"iptables”指令的shell脚本. 在这种情况下, 实际上可以停用防火墙. |
cap_net_bind_service | Bind a socket to Internet domain privileged ports (port numbers less than 1024). | 将套接字绑定到Internet域特权端口(端口号小于1024)。 | 允许绑定到1024以下的tcp / udp套接字。 允许绑定到32以下的atm vci。 | (如果服务已经在inaddr_any上进行侦听, 那么我无法绑定到特定接口是不正确的) |
cap_net_broadcast | (Unused) Make socket broadcasts, and listen to multicasts. | (未使用)进行套接字广播, 并收听多播。 | 允许广播,收听多播。 | |
cap_sys_nice | Raise process nice value (nice(2), setpriority(2)) and change the nice value for arbitrary processes; set real-time scheduling policies for calling process, and set scheduling policies and priorities for arbitrary processes (sched_setscheduler(2), sched_setparam(2), sched_setattr(2)); set CPU affinity for arbitrary processes (sched_setaffinity(2)); set I/O scheduling class and priority for arbitrary processes (ioprio_set(2)); apply migrate_pages(2) to arbitrary processes and allow processes to be migrated to arbitrary nodes; apply move_pages(2) to arbitrary processes; use the MPOL_MF_MOVE_ALL flag with mbind(2) and move_pages(2). | 提高进程的nice值(nice(2), setpriority(2))并为任意进程更改nice值; 为调用进程设置实时调度策略, 并为任意进程设置调度策略和优先级(sched_setscheduler(2), sched_setparam(2), sched_setattr(2)); 为任意进程设置CPU关联性(sched_setaffinity(2)); 为任意进程设置I/O调度类和优先级(ioprio_set(2)); 将migration_pages(2)应用到任意进程, 并允许将进程迁移到任意节点; 将move_pages(2)应用于任意进程; 在mbind (2)和 move_pages(2)中使用MPOL_MF_MOVE_ALL标志。 | 允许提高优先级并为其他(不同的uid)进程设置优先级。 允许在自己的进程上使用fifo和循环调度(实时),并设置另一个进程使用的调度算法。 允许在其他进程上设置cpu亲和力。 | cap_sys_nice应该更容易发起密码加密程序的边信道攻击. 可以迫使受害者和分析程序在同一cpu内核上单独存在. 然后, 您可以确定分支预测和缓存仅受您要分析的程序的影响. 如果可以降低受害者的优先级(=由于省电, cpu时钟速度在负载下不会增加)并且攻击者拥有一个cpu(具有较高的cpu时钟), 则可以轻松利用种族条件. 对于具有超线程的cpu, 可以将辅助程序放在第二个虚拟处理器(受害者是第一个虚拟处理器)上, 该程序通过使用cpu进一步降低受害者的性能, 并导致二级缓存命中率下降. |
cap_sys_pacct | Use acct(2). | 使用acct(2)。 | 允许配置过程记帐。 | |
cap_sys_resource | Use reserved space on ext2 filesystems; make ioctl(2) calls controlling ext3 journaling; override disk quota limits; increase resource limits (see setrlimit(2)); override RLIMIT_NPROC resource limit; override maximum number of consoles on console allocation; override maximum number of keymaps; allow more than 64hz interrupts from the real-time clock; raise msg_qbytes limit for a System V message queue above the limit in /proc/sys/kernel/msgmnb (see msgop(2) and msgctl(2)); allow the RLIMIT_NOFILE resource limit on the number of "in-flight" file descriptors to be bypassed when passing file descriptors to another process via a UNIX domain socket (see unix(7)); override the /proc/sys/fs/pipe-size-max limit when setting the capacity of a pipe using the F_SETPIPE_SZ fcntl(2) command; use F_SETPIPE_SZ to increase the capacity of a pipe above the limit specified by /proc/sys/fs/pipe-max-size; override /proc/sys/fs/mqueue/queues_max limit when creating POSIX message queues (see mq_overview(7)); employ the prctl(2) PR_SET_MM operation; set /proc/[pid]/oom_score_adj to a value lower than the value last set by a process with CAP_SYS_RESOURCE. | 在ext2文件系统上使用保留空间; 进行ioctl(2)调用以控制ext3日记记录; 覆盖磁盘配额限制; 增加资源限制(请参阅setrlimit(2)); 覆盖RLIMIT_NPROC资源限制; 在控制台分配中覆盖最大控制台数; 覆盖最大按键映射数; 允许来自实时时钟的超过64hz的中断; 将System V消息队列的msg_qbytes限制提高到/ proc/sys/kernel/msgmnb中的限制(请参阅msgop(2)和 msgctl(2)); 当通过UNIX域套接字将文件描述符传递到另一个进程时, 允许绕过“运行中”文件描述符数量的RLIMIT_NOFILE资源限制(请参见 unix(7)); 使用F_SETPIPE_SZ fcntl(2) 命令设置管道的容量时, 请覆盖/ proc/sys/fs/pipe-size-max限制; 使用F_SETPIPE_SZ将管道的容量增加到超过/ proc/sys/fs/pipe-max-size指定的限制; 创建POSIX消息队列时, 请覆盖/ proc/sys/fs/mqueue/queues_max限制(请参阅mq_overview(7)); 使用prctl(2) PR_SET_MM操作; 将/ proc/[pid]/oom_score_adj设置为小于使用CAP_SYS_RESOURCE的进程最后设置的值。 | 覆盖资源限制。设置资源限制。覆盖配额限制覆盖ext2文件系统上的保留空间修改ext3文件系统上的数据日记模式(使用日记资源)。注意:ext2在检查资源覆盖时会使用fsuid,因此您也可以使用fsuid覆盖。覆盖ipc消息队列的大小限制。允许来自实时时钟的超过64hz的中断。在控制台分配上覆盖最大控制台数。覆盖键映射的最大数量。 | |
cap_sys_time | Set system clock (settimeofday(2), stime(2), adjtimex(2)); set real-time (hardware) clock. | 设置系统时钟(settimeofday(2), stime(2), adjtimex(2)); 设置实时(硬件)时钟。 | 允许操纵系统时钟。 在mips上允许irix_stime。 允许设置实时时钟。 | |