我可以用"podman"无根运行bash吗



简单的场景是这样的;在本教程中:

  • 使用podman而不使用sudo
    • 如何在Ubuntu 20.04上安装和使用Podman
  • 更新#1 。。。该问题似乎与在Ubuntu上正确激活cgroups2有关

在Ubuntu容器中运行bash而不需要root/sudo权限。命令行是:

podman run --rm --interactive --tty ubuntu bash

此命令会产生以下结果:

$ podman run --rm --interactive --tty ubuntu:20.10 bash
Completed short name "ubuntu" with unqualified-search registries (origin: /etc/containers/registries.conf)
Trying to pull docker.io/library/ubuntu:20.10...
Getting image source signatures
Copying blob 79e7e9027772 done  
Copying blob eed86eef5a46 done  
Copying blob 1b553362680b done  
Copying config deb373a625 done  
Writing manifest to image destination
Storing signatures
Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs 
available in user namespace (requested 0:42 for /etc/gshadow): 
Check /etc/subuid and /etc/subgid: lchown /etc/gshadow: invalid argument 
Error: Error committing the finished image: error adding layer with 
blob "sha256:eed86eef5a4687135cb1ba7c55da6af79c9182e8bf59b53a880d1b334515c8e3": 
Error processing tar file(exit status 1): potentially insufficient UIDs or GIDs 
available in user namespace (requested 0:42 for /etc/gshadow): Check /etc/subuid 
and /etc/subgid: lchown /etc/gshadow: invalid argument

这让我们相信,需要一些进一步的特权(可能不是root,,但…(。这一点已经通过使用sudo运行相同的命令得到了证实——除了popdman Ubuntu映像在我的电脑上以root运行外,它的工作非常愉快。这不是我所期望的愉快结果。

目前,这台机器上的/etc/subuid/etc/subgid文件只有几个samba用户和一个wireshark用户的条目,如图所示:

/etc/subgid                     /etc/subgid

tsmith:100000:65536             tsmith:100000:65536
demo:165536:65536               demo:165536:65536
smbguest:231072:65536           smbguest:231072:65536
wireshark:296608:65536          wireshark:296608:65536

在这一点上我真的没有指导。我意识到我需要对subuid-s和subgid-s做一些事情,才能使这个示例工作。到目前为止,我还没有找到一些关于需要什么的提示或文件。除了不直接编辑文件——这很公平。

同样在上面提到的教程中,是一个非sudo的例子,查看subuid-s:

$ podman unshare cat /proc/self/uid_map
0       1000          1
1     100000      65536

我问自己,用户#1只是一个例子,还是我错过了一步?当我在这台电脑上做同样的事情时,我看到的只是:

$ podman unshare cat /proc/self/uid_map
0       1000          1

没有用户#1,只有用户#0。我该采取什么行动?现在的问题是:

  1. 如何让Ubuntubashshell在容器中无根运行?
    • 最小的更改足以让bash无根运行
  • 从哪里开始
  • 我需要做什么
  • 我该怎么做

请参阅有关如何在Redhat上设置无根访问的链接:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/building_running_and_managing_containers/starting-with-containers_building-running-and-managing-containers

我通过应用这里的所有步骤,最终让Ubuntu使用了无根容器。。。

  • 无根环境中Podman的基本设置和使用

这几乎就像是我在最初的文章中一样,所以我真的不能说哪一点第一次做得不对。那篇文章中的步骤肯定能起到作用。

确认您的容器是无根的非常重要(imho(。有时你仍然可以以root身份运行,但认为它是";工作";。

相关内容

  • 没有找到相关文章

最新更新