Docker安全--将用户添加到Docker组中进行启动容器与未添加到Docker组中的sudo执行的研究
来源:互联网 发布:js面向对象 编辑:程序博客网 时间:2024/04/29 00:19
/***************************************
* Author : Samson
* Date : 08/25/2015
* Test platform:
* gcc 4.8.2
* GNU bash, 4.3.11(1)-release (x86_64-pc-linux-gnu)
* Docker version 1.7.1
* Debian GNU/Linux 7
* *************************************/
结论:
对于将host下的普通用户添加到docker组中后不使用sudo即可执行docker程序,会给大家造成一种启动docker是以非root权限进行启动的假象,其实这样只是减少了每次使用sudo时输入密码的过程罢了,其实docker本身还是以sudo的权限在运行的。
以下是实际的验证过程:
还是以shadowsocks的Dockerfile来进行验证。
rootyygy是build所得。
docker build -rm -t rootyygy .
1、将host中的普通用户添加到doker组后应用程序的运行状态:
查看当前用户及所属组:
ufo@ufo:~/$ iduid=1000(ufo) gid=1000(ufo) 组=1000(ufo),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),104(scanner),109(bluetooth),111(netdev),999(docker)
启动rootyygy
ufo@ufo:~/$ docker start rootyygyrootyygyufo@ufo:~/$ docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4d3813cacaab rootyygy "/bin/tini -- /usr/l 53 minutes ago Up 5 seconds 443/tcp, 8388/tcp rootyygy
在host中查看docker进程的状态,是以root进行启动的:
ufo@ufo:~/$ ps aux | grep dockerroot 3449 0.0 0.4 923432 19328 ? Sl 12:20 0:18 /usr/bin/docker -d -p /var/run/docker.pid --insecure-registry hub.lianshinet.com:5000ufo 11626 0.0 0.0 10156 2016 pts/3 R+ 17:32 0:00 grep docker
在host中查看应用程序的状态,是以root进行启动的:
ufo@ufo:~/$ ps aux | grep shadroot 11253 0.0 0.0 1104 4 ? Ss 17:06 0:00 /bin/tini -- /usr/local/bin/shadowsocks.shroot 11258 0.0 0.0 20032 2808 ? S 17:06 0:00 /bin/bash /usr/local/bin/shadowsocks.shroot 11259 0.4 0.3 45764 14288 ? S 17:06 0:00 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.jsonufo 11278 0.0 0.0 10152 1960 pts/3 S+ 17:07 0:00 grep shad
进行容器中进行进程的查看,是以root进行启动的:
ufo@ufo:~/$ docker inspect -f {{.State.Pid}} rootyygy11253ufo@ufo:~/$ sudo nsenter --target 11253 --mount --uts --ipc --net --pid[sudo] password for ufo: root@4d3813cacaab:/# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 1104 4 ? Ss 09:06 0:00 /bin/tini -- /usr/local/bin/shadowsocks.shroot 6 0.0 0.0 20032 2808 ? S 09:06 0:00 /bin/bash /usr/local/bin/shadowsocks.shroot 7 0.0 0.3 45764 14288 ? S 09:06 0:00 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.jsonroot 19 0.0 0.0 20256 3240 ? S 09:13 0:00 -bashroot 23 0.0 0.0 17488 2056 ? R+ 09:13 0:00 ps aux
2、host中的用户没有添加到docker组的用户使用sudo启动容器后的运行状态:
查看当前用户及所属组:
dj@ufo:~/$ iduid=1002(dj) gid=1002(dj) 组=1002(dj)
启动rootyygy
dj@ufo:~/$ sudo docker start rootyygyrootyygydj@ufo:~/$ docker psGet http:///var/run/docker.sock/v1.19/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?dj@ufo:~/$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES4d3813cacaab rootyygy "/bin/tini -- /usr/l About an hour ago Up 53 seconds 443/tcp, 8388/tcp rootyygy
在host中查看docker进程的状态,是以root进行启动的:
dj@ufo:$ ps aux | grep dockerroot 3449 0.0 0.4 923432 18784 ? Sl 12:20 0:18 /usr/bin/docker -d -p /var/run/docker.pid --insecure-registry hub.lianshinet.com:5000dj 11532 0.0 0.0 10156 2112 pts/1 S+ 17:29 0:00 grep docker
在host中查看应用程序的状态,是以root进行启动的:
dj@ufo:$ ps aux | grep nginxdj 11172 0.0 0.0 10152 1944 pts/1 S+ 17:02 0:00 grep nginxdj@ufo:~/$ ps aux | grep shadroot 11152 0.1 0.0 1104 4 ? Ss 17:02 0:00 /bin/tini -- /usr/local/bin/shadowsocks.sh root 11158 0.0 0.0 20032 2740 ? S 17:02 0:00 /bin/bash /usr/local/bin/shadowsocks.shroot 11159 0.8 0.3 45764 14400 ? S 17:02 0:00 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.jsondj 11174 0.0 0.0 10152 1956 pts/1 S+ 17:02 0:00 grep shad
进行容器中进行进程的查看,是以root进行启动的:
dj@ufo:~/$ sudo docker inspect -f {{.State.Pid}} rootyygy11419dj@ufo:~/$ sudo nsenter --target 11419 --mount --uts --ipc --net --pidroot@4d3813cacaab:/# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 1104 4 ? Ss 09:17 0:00 /bin/tini -- /usr/local/bin/shadowsocks.shroot 6 0.0 0.0 20032 2788 ? S 09:17 0:00 /bin/bash /usr/local/bin/shadowsocks.shroot 7 0.0 0.3 45764 14392 ? S 09:17 0:00 /usr/bin/python /usr/local/bin/ssserver -c /etc/shadowsocks.jsonroot 19 0.0 0.0 20256 3244 ? S 09:19 0:00 -bashroot 23 0.0 0.0 17488 2048 ? R+ 09:19 0:00 ps aux
1 0
- Docker安全--将用户添加到Docker组中进行启动容器与未添加到Docker组中的sudo执行的研究
- Docker安全--关于Docker使用root与非root用户的场景中的容器与host中的执行用户的研究
- fedora将用户添加到sudo组
- 添加用户到Sudo组
- 将用户添加到sudo的方法
- Docker与容器安全
- [docker]将容器的进程映射到主机-nginx
- 怎么给运行中的docker容器添加新的端口
- docker 允许主机ssh到docker容器中
- Docker爱好者欢庆吧!CoreOS被添加到DigitalOcean中
- 添加cyclictest 库文件到docker
- centos将用户添加到sudo用户的方法
- docker映射本地代码到容器中
- 添加docker权限给当前用户,使docker命令免sudo
- 将普通用户添加到sudo组
- 将普通用户添加到sudo组
- [读书笔记]Docker与容器安全
- Docker Security docker 容器安全
- ASP.NET中获取字符串的MD5码
- Android 新浪微博api开发
- R语言-时间刻度的转换
- spring boot实战(第一篇)第一个案例
- MySQL学习笔记之开发环境的搭建
- Docker安全--将用户添加到Docker组中进行启动容器与未添加到Docker组中的sudo执行的研究
- 利用NSInvocation给NSObject添加一个分类方法,解决传递多参数问题
- 到底utf-8和unicode是什么关系
- Cube Stacking
- ThreadLocal维护线程局部 变量或线程局部对象
- 读写锁
- 领域驱动设计学习笔记
- Modelsim/QuestaSim教程——基础篇
- 不带signed或unsigned关键字的char型 无符号数? 有符号数? C标准规定为 Implementation Defined !!!