首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用“`podman`”来运行bash rootless吗?

我能用“`podman`”来运行bash rootless吗?
EN

Stack Overflow用户
提问于 2021-05-11 00:39:37
回答 2查看 1.9K关注 0票数 0

简单的场景如下;在本教程中:

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

代码语言:javascript
复制
podman run --rm --interactive --tty ubuntu bash

此命令将产生以下结果:

代码语言:javascript
复制
  $ 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

这使我们相信,需要进一步的特权(可能不是根源,但.)。通过使用sudo运行相同的命令已经证实了这一点--除了在我的PC上以root的形式运行popdman Ubuntu映像之外,它非常愉快地工作。而不是我所期望的幸福结果。

目前,这台机器上的/etc/subuid/etc/subgid文件只有少数samba用户和wireshark用户的条目,如下所示:

代码语言:javascript
复制
     /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:

代码语言:javascript
复制
$ podman unshare cat /proc/self/uid_map
    0       1000          1
    1     100000      65536

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

代码语言:javascript
复制
$ podman unshare cat /proc/self/uid_map
    0       1000          1

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

  1. 如何让Ubuntu bash外壳在容器中无根运行?
    • 最小的更改就足以看到bash无根运行。

  • 我从哪里开始?
  • 我该怎么办?
  • 我该怎么做呢?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-01 07:36:52

通过应用以下所有步骤,我最终使Ubuntu能够使用无根容器.

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

确认您的容器是无根的是非常重要的(imho)。有时,您仍然可以运行作为根,但认为它是“工作”。

票数 0
EN

Stack Overflow用户

发布于 2021-05-14 00:01:25

有关如何在Redhat:建筑物运行和管理容器上设置无根访问的链接,请参阅此链接

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67479172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档