简单的场景是这样的;在本教程中:
- 使用
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。我该采取什么行动?现在的问题是:
- 如何让Ubuntu
bash
shell在容器中无根运行?- 最小的更改足以让
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身份运行,但认为它是";工作";。