我在社区大学教 Linux 系统管理课程。班上的一些学生无法随时访问 Linux 安装,因此学校设有一个 SSH 服务器,他们可以访问该服务器来完成实验室工作、实验等。当然,我们不为学生提供 root 访问权限等,这显然具有教学限制。
我一直在思考一个想法,即学生可以拥有自己的容器,他们可以在其中拥有 root 权限等,这样我就可以涵盖更广泛的主题。我对容器的经验有限,所以我有几个问题希望得到一些帮助:
- 是否可以让学生通过 ssh“直接”连接到容器,或者他们必须在登录时启动容器。请注意,我不是在问(例如)将容器绑定到特定端口,而是是否可以让他们的(/etc/passwd)shell 成为容器的 shell,或者在登录后通过 bash 设置直接将他们放入容器中?
- 大多数情况下,容器都是临时运行的,但我本质上希望学生能够拥有一个持久的容器。拥有持久容器是否存在任何潜在问题?
- 我觉得让学生处于容器中比让他们拥有非特权 shell 访问权限更安全,但是让学生拥有容器的 root 访问权限是否存在安全缺陷?
学生们以前使用过 Centos 系统进行工作,我的所有课程材料都是围绕 Centos 构建的。有没有建议我使用的容器镜像?常规的 docker/podman centos 镜像可以在这种情况下正常工作吗?
感谢您的帮助和建议。
答案1
回答您的一些问题:
- 只要容器运行 SSHD 服务并且端口已映射,您就可以直接通过 SSH 连接到容器。每个容器都需要在主机上打开自己的端口才能通过 SSH 连接。使用 SystemD 和自定义登录名可能会有更复杂的选项,但您绝对可以通过 SSH 连接。
- 您可以使用卷配置容器以进行持久存储,如果没有告知,它们通常只是“停止”,而不是停止和删除。所以是的,它们可以持久。
- 实际上,根据容器的运行方式,情况可能并非如此!授予某人容器中的 root 访问权限与授予他们在主机上的 root 访问权限几乎相同 - 这里肯定有其他关于此问题的答案。
- Centos 有一个官方容器镜像,它将会
centos:7
或centos:8
很有可能。
另一个选择是研究一些大型云提供商是否可以提供教育账户,以允许访问一组有上限的资源?这样,学生就可以部署一个预先配置在云中的环境,并从任何地方访问它(同时还可以学习一些云技能!)。我希望三大巨头(亚马逊/谷歌/微软)都能提供一些可用的东西。