Podman 最新版本 v4.6.0 引入了一项有望为系统管理员带来革命性改变的功能:Podmansh。
Podman 是一个无守护进程的容器引擎,用于在 Linux 系统上开发、管理和运行 Open Container Initiative (OCI) 容器和容器镜像。Podman 提供了一个与 Docker 兼容的命令行前端,它可以作为 Docker CLI 使用,简单地说你可以直接添加别名:alias docker=podman 来使用 Podman。
Podmansh 是一个登录 shell,利用了 Podman 强大的容器管理特性。它将重新定义用户与系统的交互方式,同时确保管理员拥有最大程度的安全和控制权限。
亮点介绍
Podmansh 引入新的容器管理范式
- Podman v4.6.0 推出了 “Podmansh”,一个登录 Shell,充分利用了 Podman 的容器管理功能,为系统管理员带来全新的容器管理体验。
解决系统管理员的关键问题
- 对于系统管理员来说,管理资源访问是至关重要的任务。需要一种机制来限制用户在预定义边界内运行。podmansh 命令解决了这个问题,允许系统管理员在用户登录系统时,在容器内执行用户 Shell,实现对用户的隔离和控制。
Podmansh 工作原理
- 管理员将系统上的用户配置为使用 /usr/bin/podmansh 命令,而不是像 /bin/bash 那样的普通 Shell 命令。当用户以这种方式登录系统时,Podmansh 命令会在名为 podmansh 的无特权容器中执行用户会话。该容器由 systemd 在用户会话开始时自动启动,并持续运行,直到所有用户会话退出。
通过 Quadlet 文件定义用户登录容器
- 用户登录的容器通过 Quadlet 文件定义,管理员可以通过在 Quadlet 文件中为容器指定卷来控制主机系统在容器内的可见性。管理员还可以通过 Quadlet 设置限制登录用户的访问、安全特权以及资源约束。
配置和使用 Podmansh
- 管理员可以在 /etc/containers/systemd/users 目录下创建 Quadlet 文件,然后 systemd 会在用户登录时初始化这些文件。管理员还可以为每个用户将 Quadlet 文件放在 /etc/containers/systemd/users/${USER_ID} 目录下,从而实现对每个用户的精细控制。
Podmansh 容器设置示例
- 创建一个名为 lockedu 的用户登录会话,并在 Quadlet 文件中定义容器设置,包括使用的容器镜像、容器名称、用户映射、运行方式等。这种设置可以实现对用户在容器内的限制和控制,以及更精细的安全配置。
Podmansh 优势与用途
- Podmansh 通过强大的容器管理功能,重新定义了系统管理员与用户之间的交互方式。它提供了更好的资源隔离、安全性和控制,有助于解决容器技术中的访问管理问题,为系统管理员提供更高效的管理工具。