在没有 sudo 的情况下运行特权 podman(并且没有用户名空间)

Posted

技术标签:

【中文标题】在没有 sudo 的情况下运行特权 podman(并且没有用户名空间)【英文标题】:Run privileged podman without sudo (and without usernamespace) 【发布时间】:2019-10-11 07:26:01 【问题描述】:

我在 RHEL 7.6 上安装了 podman,并且可以使用 sudo 运行正常的 docker 命令

sudo podman run hello-world

有没有办法在不使用 sudo、不使用用户名空间的情况下运行它(类似于在使用常规 docker 命令时将用户添加到 docker 组)?

我了解当以非 root 用户身份运行时,podman 使用用户名空间。但我无法在机器上启用/设置 suid(LDAP 等)

目前,当以非 root 用户身份运行时,我得到了这个

user namespaces are not enabled in /proc/sys/user/max_user_namespaces
ERRO[0000] cannot re-exec process

【问题讨论】:

【参考方案1】:

如果您正在运行 Podman 并且您不是 root 用户并且您没有使用 sudo,即“无根”,那么您或您的管理员必须在系统上启用用户命名空间才能使其充分工作.在没有设置用户命名空间的情况下,只有极少数命令(例如“podman 版本”)可以在无根环境中工作。

您看到的错误必须由具有管理权限的人使用sysctl user.max_user_namespaces=15000 之类的命令来处理,该命令将在系统上启用 15,000 个用户名空间。此外,需要在系统上安装 shadows-utils 包,并且 /etc/subuid 和 /etc/subgid 文件必须具有以下条目:

用户名:1​​00000:65536

在每个想要为他们启用用户名空间的用户中。

【讨论】:

谢谢@tom-sweeny。您知道用户名空间的设置是否可以与 LDAP 集成?

以上是关于在没有 sudo 的情况下运行特权 podman(并且没有用户名空间)的主要内容,如果未能解决你的问题,请参考以下文章

Podman常用命令总结

podman

podman

podman

podman

Linux Debian11 Podman容器常用命令