Tag: linux capabilities

放弃容器内的特权

我的一个图像需要安装设备。 因此,启动时需要cap_sys_admin。 但是,一旦不再需要,我想放弃这个function。 有什么办法在后期放弃这个能力?

与任何其他主机操作系统相比,CentOS作为Docker主机会导致不同的容器行为

我在不同的主机上使用Docker:RHEL7,SELS12和CentOS7,并且发现在CentOS7上作为Docker Host运行的容器中的不同行为,与在SLES12或RHEL7上作为Docker主机运行的容器相比。 不同的行为与Docker容器中的常见问题有关: https : //github.com/docker/docker/issues/7147 https://github.com/docker/docker/issues/6800 在CentOS7作为Docker主机的容器中: 我有权限parsingpath中的符号:/ proc / 1 命令: ls -la /proc/1 启动容器的命令: docker run -it –name=nessi_centos_test centos:latest bash 但是,在SLES12或RHEL7作为Docker主机的容器中: 我在上面的链接中看到了使用相同的命令拒绝了权限 。 命令: ls -la /proc/1 附加信息: 依靠Docker安全性文档 ,默认情况下容器是以受限制的Linux内核function开始的。 其中一个function是:CAP_SYS_PTARCE 这个function默认存在于任何Linux主机中: 在Linux机器上的例子: 但是在所有的容器中默认都是缺less的(除非你使用–cap-add = sys_ptrace启动容器) 容器中的示例: 您可以在此看到容器具有一组受限制的function,不包括sys_ptracefunction。 因此,如果我在RHEL或SLES中使用–cap-add = sys_ptrace作为Docker主机启动容器,则获得与作为Docker主机在CentOS 7中相同的行为。 示例:Docker主机:RHEL7 Docker镜像:centos:最新(与之前一样) Strat command: docker run -it –name=nessi_centos_test5 –cap-add=sys_ptrace centos:latest […]

允许容器在端口80上收听的副作用

为了简化Docker容器之间的服务端口pipe理,我希望允许包含的HTTP服务侦听各自容器IP地址的HTTP默认TCP端口80。 监听1025以下的端口号通常限于具有特权的用户,如root 。 据我所知,这样做的原因是禁止多用户系统上的非特权用户充当整个机器的授权HTTP服务。 在较新的Linux版本中,也可以通过应用Linux内核functionCAP_NET_BIND_SERVICE来允许特定的可执行文件。 为了在Docker容器中工作,我似乎还需要通过Docker客户端上的–add-cap标志或Docker-Compose cap_add部分将此function应用于Docker容器本身。 理论上,这种端口号限制的原因在这种情况下已经过时了,因为Linux内核的networking命名空间允许容器内的进程只绑定在他们自己独有的IP地址上。 现在我的问题是,如果有这样的严重警告。 这是否会成为一个安全问题,而不会被我忽视? 或者还有其他的问题吗?

检查Linuxfunction来设置线程优先级

我有一个使用pthread_setschedparam()来设置线程优先级的C ++应用程序。 在docker集装箱内,EPERM会失败。 如何检测我的进程是否具有设置线程优先级的必要function?