Podman v4.6 引入 Podmansh,聲稱是 “革命性” 登錄 Shell
Podman 最新版本 v4.6.0 引入了一項(xiàng)有望為系統(tǒng)管理員帶來革命性改變的功能:Podmansh。
Podman 是一個(gè)無守護(hù)進(jìn)程的容器引擎,用于在 Linux 系統(tǒng)上開發(fā)、管理和運(yùn)行 Open Container Initiative (OCI) 容器和容器鏡像。Podman 提供了一個(gè)與 Docker 兼容的命令行前端,它可以作為 Docker CLI 使用,簡(jiǎn)單地說你可以直接添加別名:alias docker=podman 來使用 Podman。
Podmansh 是一個(gè)登錄 shell,利用了 Podman 強(qiáng)大的容器管理特性。它將重新定義用戶與系統(tǒng)的交互方式,同時(shí)確保管理員擁有最大程度的安全和控制權(quán)限。
亮點(diǎn)介紹
Podmansh 引入新的容器管理范式
- Podman v4.6.0 推出了 “Podmansh”,一個(gè)登錄 Shell,充分利用了 Podman 的容器管理功能,為系統(tǒng)管理員帶來全新的容器管理體驗(yàn)。
解決系統(tǒng)管理員的關(guān)鍵問題
- 對(duì)于系統(tǒng)管理員來說,管理資源訪問是至關(guān)重要的任務(wù)。需要一種機(jī)制來限制用戶在預(yù)定義邊界內(nèi)運(yùn)行。podmansh 命令解決了這個(gè)問題,允許系統(tǒng)管理員在用戶登錄系統(tǒng)時(shí),在容器內(nèi)執(zhí)行用戶 Shell,實(shí)現(xiàn)對(duì)用戶的隔離和控制。
Podmansh 工作原理
- 管理員將系統(tǒng)上的用戶配置為使用 /usr/bin/podmansh 命令,而不是像 /bin/bash 那樣的普通 Shell 命令。當(dāng)用戶以這種方式登錄系統(tǒng)時(shí),Podmansh 命令會(huì)在名為 podmansh 的無特權(quán)容器中執(zhí)行用戶會(huì)話。該容器由 systemd 在用戶會(huì)話開始時(shí)自動(dòng)啟動(dòng),并持續(xù)運(yùn)行,直到所有用戶會(huì)話退出。
通過 Quadlet 文件定義用戶登錄容器
- 用戶登錄的容器通過 Quadlet 文件定義,管理員可以通過在 Quadlet 文件中為容器指定卷來控制主機(jī)系統(tǒng)在容器內(nèi)的可見性。管理員還可以通過 Quadlet 設(shè)置限制登錄用戶的訪問、安全特權(quán)以及資源約束。
配置和使用 Podmansh
- 管理員可以在 /etc/containers/systemd/users 目錄下創(chuàng)建 Quadlet 文件,然后 systemd 會(huì)在用戶登錄時(shí)初始化這些文件。管理員還可以為每個(gè)用戶將 Quadlet 文件放在 /etc/containers/systemd/users/${USER_ID} 目錄下,從而實(shí)現(xiàn)對(duì)每個(gè)用戶的精細(xì)控制。
Podmansh 容器設(shè)置示例
- 創(chuàng)建一個(gè)名為 lockedu 的用戶登錄會(huì)話,并在 Quadlet 文件中定義容器設(shè)置,包括使用的容器鏡像、容器名稱、用戶映射、運(yùn)行方式等。這種設(shè)置可以實(shí)現(xiàn)對(duì)用戶在容器內(nèi)的限制和控制,以及更精細(xì)的安全配置。
Podmansh 優(yōu)勢(shì)與用途
- Podmansh 通過強(qiáng)大的容器管理功能,重新定義了系統(tǒng)管理員與用戶之間的交互方式。它提供了更好的資源隔離、安全性和控制,有助于解決容器技術(shù)中的訪問管理問題,為系統(tǒng)管理員提供更高效的管理工具。