返回顶部
首页 > 资讯 > 精选 >如何在Fedora中结合权能使用Podman
  • 175
分享到

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

2023-06-15 17:06:58 175人浏览 薄情痞子
摘要

小编给大家分享一下如何在Fedora中结合权能使用Podman,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!容器化是一项蓬勃发展的技术。在不久的将来,多达百分之七

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

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

确定 Podman 容器的权限模式

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

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

$ podman inspect --fORMat="{{.HostConfig.Privileged}}" <container id>

如果上面的命令返回 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”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: 如何在Fedora中结合权能使用Podman

本文链接: https://lsjlt.com/news/281152.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在Fedora中结合权能使用Podman
    小编给大家分享一下如何在Fedora中结合权能使用Podman,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!容器化是一项蓬勃发展的技术。在不久的将来,多达百分之七...
    99+
    2023-06-15
  • 在Fedora如何使用Podman
    这篇文章主要为大家展示了“在Fedora如何使用Podman”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Fedora如何使用Podman”这篇文章吧。Podman 是 Libpod 的一部分...
    99+
    2023-06-28
  • 如何在AngularJs中结合SpringMVC使用
    本篇文章给大家分享的是有关如何在AngularJs中结合SpringMVC使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。首先我们把springmvc的环境搭好,先来web....
    99+
    2023-05-31
    angularjs springmvc
  • 如何在Fedora中安装和使用ffsend
    这篇文章主要讲解了“如何在Fedora中安装和使用ffsend”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Fedora中安装和使用ffsend”吧!什么是 Firefox Send ...
    99+
    2023-06-04
  • 在CentOS、Fedora系统中如何使用Docker
    小编给大家分享一下在CentOS、Fedora系统中如何使用Docker,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、从docker官方yum源进行安装 添加...
    99+
    2023-06-10
  • 在Fedora中如何利用ffsend使用Firefox Send
    这篇文章将为大家详细讲解有关在Fedora中如何利用ffsend使用Firefox Send,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是 Firefox Send 和 ffsend?Firefox...
    99+
    2023-06-16
  • 怎么在Fedora中为用户授予使用Docker的权限
    小编给大家分享一下怎么在Fedora中为用户授予使用Docker的权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为用户授予使用Docker的权限Fedora ...
    99+
    2023-06-16
  • Fedora 中如何使用 Firefox Send?
    ffsend 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 ffsend 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。什么是 Firefox Send 和 ffsend?...
    99+
    2023-06-05
  • 如何在 mysql 中实现 update与select结合使用?
    MySQL 中 update与select结合使用 1.只修改一个列的写法: UPDATE table1 SET column1 = (SELECT column FROM table2 [WHERE condition])//若不...
    99+
    2023-08-16
    mysql 数据库 sql
  • Spring 和 Numpy:如何在 Python 中将它们结合使用?
    Python 作为一种高级编程语言,拥有许多流行的库和框架。其中,Spring 和 Numpy 是两个非常受欢迎的库,它们分别用于构建 Java Web 应用程序和进行科学计算。在本文中,我们将介绍如何在 Python 中将 Spring...
    99+
    2023-08-31
    教程 spring numpy
  • 如何在Fedora中使用SELinux进行安全增强
    在Fedora中使用SELinux进行安全增强可以通过以下步骤实现: 确保SELinux已启用:在Fedora中,默认情况下SEL...
    99+
    2024-04-02
  • SpringMVC+myBatis如何结合使用
    这篇文章给大家分享的是有关SpringMVC+myBatis如何结合使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. [代码]控制器片段     ...
    99+
    2023-06-03
  • Unix系统中的索引功能与PHP如何结合使用?
    Unix系统是一种广泛使用的操作系统,而PHP是一种流行的编程语言。在Unix系统中,索引功能是非常重要的,它可以帮助用户更快地找到所需的文件和信息。在本文中,我们将讨论Unix系统中的索引功能以及如何在PHP中使用它。 一、Unix系统中...
    99+
    2023-10-16
    unix 索引 linux
  • 如何在Fedora中集成和使用版本控制系统
    在Fedora中集成和使用版本控制系统可以通过以下步骤完成: 安装版本控制系统:Fedora默认安装了Git版本控制系统,如果需...
    99+
    2024-04-02
  • 在Fedora上如何使用Poetry管理Python项目
    这篇文章主要介绍“在Fedora上如何使用Poetry管理Python项目”,在日常操作中,相信很多人在在Fedora上如何使用Poetry管理Python项目问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在...
    99+
    2023-06-15
  • Python 和 Spring 如何结合使用?
    Python 和 Spring 是两个不同的编程语言和框架,它们分别用于不同的用途。Python 是一种高级编程语言,它被广泛应用于数据科学、机器学习、Web 开发等领域。Spring 是一种 Java 框架,它为企业级应用程序提供了一种...
    99+
    2023-06-27
    spring apache django
  • ASP.NET 和 NumPy:如何结合使用?
    ASP.NET 是一种用于构建 Web 应用程序的框架,而 NumPy 则是一个功能强大的 Python 库,用于进行科学计算和数据分析。虽然它们是不同的技术,但结合使用可以为 Web 应用程序添加更多的功能和灵活性。本文将介绍如何在 A...
    99+
    2023-09-05
    numy 编程算法 对象
  • ASP和Spring如何结合使用?
    ASP和Spring是两个不同的框架,ASP是一种微软公司开发的服务器端脚本语言,而Spring是一种Java开源框架。它们各自有自己的优点和特点,但是如果能够结合使用,可以实现更加强大的功能。 在本文中,我们将介绍ASP和Spring如...
    99+
    2023-06-04
    spring 函数 bash
  • redis和mysql如何结合使用
    结合使用 redis 和 mysql 的优势:缓存:提高应用程序性能,减少对 mysql 数据库的查询。会话管理:减轻 mysql 数据库的负担,提高可伸缩性。排行榜和队列:存储和快速访...
    99+
    2024-06-12
    mysql redis
  • 如何在c++中使用map结构
    如何在c++中使用map结构?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。map的常用用法map 表示映射,可以将任何基本类型(包括 STL 容器)映射到任何基本类型(包括 S...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作