用 docker 隔离不同用户

2020-06-15 11:33:34 +08:00
 cnt2ex

服务器上多个用户,很多时候这些用户需要安装一些包,但我又不想直接给他们 root 权限,现在是打算给每个用户一个容器,然后容器里拥有 root 权限,让他们在容器里装自己需要的包。

有办法把用户限制在容器里,ssh 登录后直接进入自己的容器吗?

4561 次点击
所在节点    Linux
27 条回复
whi147
2020-06-15 11:36:18 +08:00
我建议噢,用 kvm
cloudbeyond
2020-06-15 11:44:24 +08:00
听 1 楼的,Docker 不适用于你的场景
rayhy
2020-06-15 11:45:40 +08:00
dockerfile 里面直接安装 sshd 呀,然后把 22 端口映射到外部随便一个端口比如 50001,用户直接 ssh root@ip -p 50001 。

docker 官方文档里面就有教程: https://docs.docker.com/engine/examples/running_ssh_service/
cnt2ex
2020-06-15 12:44:38 +08:00
@whi147
@cloudbeyond
我再看看


@rayhy 这样每个用户都得分配一个端口
Ultraman
2020-06-15 12:59:00 +08:00
不想一人一个端口,那就给其他所有人一块开一个容器,随他们折腾。
Osk
2020-06-15 13:02:44 +08:00
lxc 如何?
yulgang
2020-06-15 13:14:44 +08:00
听 1 楼的
singerll
2020-06-15 13:17:01 +08:00
我要是想装 docker 怎么办?
liuxu
2020-06-15 13:20:30 +08:00
1 楼说的没错,virtualbox 也适合,有 headless
joesonw
2020-06-15 13:20:47 +08:00
docker 只做资源隔离. docker 不管安全. 都可以装包了, root 不 root 有什么区别? 装个可以提权的包不就好了.
ETiV
2020-06-15 13:21:55 +08:00
如果需求只是安装包,给他们用 brew

现在支持 Linux 了
Jirajine
2020-06-15 13:46:53 +08:00
docker 自带的 usermap 功能
yuzunzhi
2020-06-15 14:00:03 +08:00
你的需求就是更适合用虚拟机解决,如楼上所说,各种虚拟化技术随便。
另外对于运维来说,不把 docker 用成虚拟机已经是个很低很低的底限了。
dapang1221
2020-06-15 14:00:31 +08:00
docker 逃逸了解一下,根本防不住有心攻击的人
baymax123456
2020-06-15 15:36:49 +08:00
@singerll docker on docker
swulling
2020-06-15 15:39:01 +08:00
@cnt2ex 6w 个端口还不够分么,你有几个用户?
dorothyREN
2020-06-16 01:12:53 +08:00
先安装好 docker,然后给每个用户的登录 shell 改成 docker exec -it {docker 实例} /bin/bash 理论上可行。
fengdra
2020-06-16 01:56:44 +08:00
可以试试 rootless 容器,这样每个人可以单独开,不用统一配置
widewing
2020-06-16 06:35:52 +08:00
用 lxc
LokiSharp
2020-06-16 09:22:10 +08:00
CentOS 8 的 Podman 是 rootless 的,可以试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/681633

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX