容器权限之capability

1 docker run携带的与权限相关的参数

1.1 docker提供了下面几个参数,用于管理容器的权限:

  • cap-add: Add Linux capabilities

  • cap-drop: Drop Linux capabilities

  • privileged=false: Give extended privileges to this container

  • device=[]: Allows you to run devices inside the container without the –privileged flag.

 

1.2 实例:下面的效果与在k8s的yaml文件中添加NET_ADMIN相同

docker run --cap-add=NET_ADMIN -it --rm ubuntu:14.04 /bin/bash

在k8s的pod创建文件中添加:

{
    "privileged": false,
    "capabilities": {
        "add": [
            "NET_ADMIN",
            "SYS_ADMIN"
        ]
    }
}

1.3 详细介绍capability的英文文档

https://man7.org/linux/man-pages/man7/capabilities.7.html

1.4 与网络相关的几个capabilities介绍

1.5 查看容器内当前支持的CAP

 

 

2 下面介绍下笔者使用过的几个capabilities,包括当时所要实现的功能

2.1 cap_net_admin  (可在容器内修改网口ip和路由)

2.2 cap_sys_ptrace  (可在容器内进行gdb调试进程)

2.3 cap_sys_admin (可在容器内进行mount挂载)

参考:https://blog.csdn.net/liukuan73/article/details/102705963

2.3 cap_sys_time(可在容器内执行chrony进行时间同步)

 

 

参考:

https://kubernetes.io/docs/tasks/configure-pod-container/security-context/

https://github.com/torvalds/linux/blob/master/include/uapi/linux/capability.h

https://blog.csdn.net/somyjun/article/details/89565421

posted @ 2022-10-09 15:49  lynalee  阅读(475)  评论(0编辑  收藏  举报