千家信息网

如何在Fedora中结合权能使用Podman

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下如何在Fedora中结合权能使用Podman,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!容器化是一项蓬
千家信息网最后更新 2026年11月02日如何在Fedora中结合权能使用Podman

小编给大家分享一下如何在Fedora中结合权能使用Podman,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

容器化是一项蓬勃发展的技术。在不久的将来,多达百分之七十五的全球组织可能会运行某种类型的容器化技术。由于广泛使用的技术更容易成为黑客攻击的目标,因此保护容器的安全就显得尤为重要。本文将演示如何使用 POSIX 权能Capability 来保护 Podman 容器的安全。Podman 是 RHEL8 中默认的容器管理工具。

确定 Podman 容器的权限模式

容器以特权模式或无特权模式运行。在特权模式下,容器的 uid 0 被映射到宿主机的 uid 0。对于某些情况,无特权的容器缺乏对宿主机资源的充分访问能力。但不管其操作模式如何,包括强制访问控制Mandatory Access Control(MAC:如 apparmor、SELinux 等)、seccomp 过滤器、删除权能Capability、命名空间等在内的技术有助于确保容器的安全。

要从容器外部确定特权模式:

$ podman inspect --format="{{.HostConfig.Privileged}}" 

如果上面的命令返回 true,那么容器在特权模式下运行。如果返回 false,那么容器在非特权模式下运行。

要从容器内部确定特权模式:

$ ip link add dummy0 type dummy

如果该命令允许你创建一个接口,那么你运行的是一个特权容器,否则你运行的是一个非特权容器。

权能

命名空间隔离了容器的进程,使其无法任意访问宿主机的资源,也无法访问在同一宿主机上运行的其他容器的资源。然而,在特权容器内的进程仍然可以做一些事情,如改变 IP 路由表、跟踪任意进程和加载内核模块。权能Capability允许人们对容器内的进程可以访问或更改的资源施加更细微的限制,即使容器在特权模式下运行也一样。权能还允许人们为无特权的容器分配它本来不会拥有的特权。

例如,如果要将 NET_ADMIN 功能添加到一个无特权的容器中,以便在容器内部创建一个网络接口,你可以用下面的参数运行 podman:

[root@vm1 ~]# podman run -it --cap-add=NET_ADMIN centos[root@b27fea33ccf1 /]# ip link add dummy0 type dummy[root@b27fea33ccf1 /]# ip link

上面的命令演示了在一个无特权的容器中创建一个 dummy0 接口。如果没有 NET_ADMIN 权能,非特权容器将无法创建接口。上面的命令演示了如何将一个权能授予一个无特权的容器。

目前,大约有 39 种权能可以被授予或拒绝。特权容器默认会被授予许多权能。建议从特权容器中删除不需要的权能,以使其更加安全。

要从容器中删除所有权能:

$ podman run -it -d --name mycontainer --cap-drop=all centos

列出一个容器的权能:

$ podman exec -it 48f11d9fa512 capsh --print

上述命令显示没有向容器授予任何权能。

请参考 capabilities 手册页以获取完整的权能列表:

$ man capabilities

可以使用 capsh 命令来列出目前拥有的权能:

$ capsh --print

作为另一个例子,下面的命令演示了如何从容器中删除 NET_RAW 权能。如果没有 NET_RAW 权能,就不能从容器中 ping 互联网上的服务器。

$ podman run -it --name mycontainer1 --cap-drop=net_raw centos>>> ping google.com (will output error, operation not permitted)

最后一个例子,如果你的容器只需要 SETUID 和 SETGID 权能,你可以删除所有权能,然后只重新添加这两个权能来实现这样的权限设置。

$ podman run -d --cap-drop=all --cap-add=setuid --cap-add=setgid fedora sleep 5 > /dev/null; pscap | grep sleep

上面的 pscap 命令会显示容器被授予的权能。

以上是"如何在Fedora中结合权能使用Podman"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

容器 权能 特权 模式 运行 命令 面的 安全 宿主 技术 接口 资源 进程 演示 宿主机 篇文章 人们 例子 内容 权限 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网和科技创新 互联网下的科技发展 礼当家互联网科技 宜安科技 互联网金融 上海致骋互联网科技 融势互联网科技 科技类的互联网平台 互联网汽车科技小镇 创业天下互联网科技有限公司 广州恒生互联网科技有限 武汉健翔互联网络科技有限公司 互联网企业科技类企业如何做账 有人说阿里系是互联网科技企业 广东鹅鹅鹅互联网科技有限公司 互联网界的黑科技 互联网科技博主张洲 互联网对科技影响 互联网科技创新方面的资料 互联网的黑科技实验室 高科技和互联网的现代国家 互联网科技工作委员会 互联网的科技 互联网科技素材视频竖屏 衡水科技产业互联网平台 互联网媒体平台算高科技产业 烟台灵鸽互联网科技有限公司 互联网时代科技型公司的机会 银川新华互联网科技学校是国营吗 众联互联网络科技 科技发展第三阶段互联网时代
0