服务器上多个用户,很多时候这些用户需要安装一些包,但我又不想直接给他们 root 权限,现在是打算给每个用户一个容器,然后容器里拥有 root 权限,让他们在容器里装自己需要的包。
有办法把用户限制在容器里,ssh 登录后直接进入自己的容器吗?
1 whi147 2020-06-15 11:36:18 +08:00 via iPhone ![]() 我建议噢,用 kvm |
![]() | 2 cloudbeyond 2020-06-15 11:44:24 +08:00 听 1 楼的,Docker 不适用于你的场景 |
![]() | 3 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/ |
![]() | 4 cnt2ex OP |
![]() | 5 Ultraman 2020-06-15 12:59:00 +08:00 via Android 不想一人一个端口,那就给其他所有人一块开一个容器,随他们折腾。 |
![]() | 6 Osk 2020-06-15 13:02:44 +08:00 via Android lxc 如何? |
![]() | 7 yulgang 2020-06-15 13:14:44 +08:00 听 1 楼的 |
![]() | 8 singerll 2020-06-15 13:17:01 +08:00 via Android 我要是想装 docker 怎么办? |
![]() | 9 liuxu 2020-06-15 13:20:30 +08:00 1 楼说的没错,virtualbox 也适合,有 headless |
10 joesonw 2020-06-15 13:20:47 +08:00 docker 只做资源隔离. docker 不管安全. 都可以装包了, root 不 root 有什么区别? 装个可以提权的包不就好了. |
![]() | 11 ETiV 2020-06-15 13:21:55 +08:00 via iPhone 如果需求只是安装包,给他们用 brew 现在支持 Linux 了 |
12 Jirajine 2020-06-15 13:46:53 +08:00 via Android ![]() docker 自带的 usermap 功能 |
13 yuzunzhi 2020-06-15 14:00:03 +08:00 你的需求就是更适合用虚拟机解决,如楼上所说,各种虚拟化技术随便。 另外对于运维来说,不把 docker 用成虚拟机已经是个很低很低的底限了。 |
![]() | 14 dapang1221 2020-06-15 14:00:31 +08:00 docker 逃逸了解一下,根本防不住有心攻击的人 |
15 baymax123456 2020-06-15 15:36:49 +08:00 @singerll docker on docker |
17 dorothyREN 2020-06-16 01:12:53 +08:00 先安装好 docker,然后给每个用户的登录 shell 改成 docker exec -it {docker 实例} /bin/bash 理论上可行。 |
18 fengdra 2020-06-16 01:56:44 +08:00 via Android 可以试试 rootless 容器,这样每个人可以单独开,不用统一配置 |
19 widewing 2020-06-16 06:35:52 +08:00 via Android 用 lxc |
![]() | 20 LokiSharp 2020-06-16 09:22:10 +08:00 via iPhone CentOS 8 的 Podman 是 rootless 的,可以试试 |
21 silentx 2020-06-16 15:30:22 +08:00 docker 直接 pull ubuntu 好了 先把 ssh start 起来 然后挂住 ip 用 docker 开 macvlan 每个 container 分配一个 ip 就好了 这样每个人都相当与有一台自己的 ubuntu 了 还都是 root |
22 CodeCodeStudy 2020-06-16 16:59:44 +08:00 注意要限制资源的使用 --cpus -m --device-write-bps 我就碰到过没限制容器的 CPU 使用率,导致宿主机挂了的情况 |
![]() | 23 tomychen 2020-06-17 13:18:07 +08:00 chroot |
24 yanqiyu 2020-06-17 17:01:42 +08:00 via Android 建议使用 podman 之类的 rootless 容器,实现可以参考 Fedora 提供的 toolbox 特性 1 )全程用户没有特权 2 )在容器中表现为 root 权限,可以正常安装软件,配置开发环境 3 ) proc 、home 等分区会正常挂载,保证使用体验无缝,如果是带图形的话 dbus 以及 X socket 也会处理 -------- 对于用户而言大家都不给 sudo,让他们使用 toolbox 进入自己的环境 -------- 因为是 rootless 容器,哪怕被橄榄权限也不会超过用户本来的权限,不会对于系统造成破坏 |
25 wendellyih 2020-06-18 18:16:54 +08:00 @ETiV 这个方案可行,之前多个同事共享一台开发机时用的就是这个方案,现在都独立开发机了,就放飞自我了。 |
26 solider245 2020-06-22 12:32:39 +08:00 @CodeCodeStudy 容器内的系统再使用 docker 的话,是和新安装 docker 一样吗? |
27 CodeCodeStudy 2020-06-22 17:28:54 +08:00 @solider245 没试过,应该装不了吧 |