入门操作测试2
能力机制(Capability)是 Linux 内核一个强大的特性,可以提供细粒度的权限访问控制。
测试2:
以entrypoint
指定命令运行busybox容器:
这里添加的--rm
参数,是实现退出这个容器后马上把它删除
默认情况下,容器被严格限制只允许使用内核的一部分能力,根据实际情况,可以使用参数--cap-add
和 --cap-drop
来控制容器的能力。例如:
更多用于docker的capability key如下表:(来自https://docs.docker.com/engine/reference/run/)
Capability Key
Capability Description
SETPCAP
Modify process capabilities.
MKNOD
Create special files using mknod(2).
AUDIT_WRITE
Write records to kernel auditing log.
CHOWN
Make arbitrary changes to file UIDs and GIDs (see chown(2)).
NET_RAW
Use RAW and PACKET sockets.
DAC_OVERRIDE
Bypass file read, write, and execute permission checks.
FOWNER
Bypass permission checks on operations that normally require the file system UID of the process to match the UID of the file.
FSETID
Don’t clear set-user-ID and set-group-ID permission bits when a file is modified.
KILL
Bypass permission checks for sending signals.
SETGID
Make arbitrary manipulations of process GIDs and supplementary GID list.
SETUID
Make arbitrary manipulations of process UIDs.
NET_BIND_SERVICE
Bind a socket to internet domain privileged ports (port numbers less than 1024).
SYS_CHROOT
Use chroot(2), change root directory.
SETFCAP
Set file capabilities.
Capability Key
Capability Description
SYS_MODULE
Load and unload kernel modules.
SYS_RAWIO
Perform I/O port operations (iopl(2) and ioperm(2)).
SYS_PACCT
Use acct(2), switch process accounting on or off.
SYS_ADMIN
Perform a range of system administration operations.
SYS_NICE
Raise process nice value (nice(2), setpriority(2)) and change the nice value for arbitrary processes.
SYS_RESOURCE
Override resource Limits.
SYS_TIME
Set system clock (settimeofday(2), stime(2), adjtimex(2)); set real-time (hardware) clock.
SYS_TTY_CONFIG
Use vhangup(2); employ various privileged ioctl(2) operations on virtual terminals.
AUDIT_CONTROL
Enable and disable kernel auditing; change auditing filter rules; retrieve auditing status and filtering rules.
MAC_ADMIN
Allow MAC configuration or state changes. Implemented for the Smack LSM.
MAC_OVERRIDE
Override Mandatory Access Control (MAC). Implemented for the Smack Linux Security Module (LSM).
NET_ADMIN
Perform various network-related operations.
SYSLOG
Perform privileged syslog(2) operations.
DAC_READ_SEARCH
Bypass file read permission checks and directory read and execute permission checks.
LINUX_IMMUTABLE
Set the FS_APPEND_FL and FS_IMMUTABLE_FL i-node flags.
NET_BROADCAST
Make socket broadcasts, and listen to multicasts.
IPC_LOCK
Lock memory (mlock(2), mlockall(2), mmap(2), shmctl(2)).
IPC_OWNER
Bypass permission checks for operations on System V IPC objects.
SYS_PTRACE
Trace arbitrary processes using ptrace(2).
SYS_BOOT
Use reboot(2) and kexec_load(2), reboot and load a new kernel for later execution.
LEASE
Establish leases on arbitrary files (see fcntl(2)).
WAKE_ALARM
Trigger something that will wake up the system.
BLOCK_SUSPEND
Employ features that can block system suspend.
更多关于Linux Capability的知识点,可以访问这个网页:
http://man7.org/linux/man-pages/man7/capabilities.7.html
Last updated