2.2. 客户端访问控制


libvirt的客户端访问控制框架允许系统管理员在客户端用户、受管对象和 API 操作之间设置精细的权限规则。这使得客户端连接可以锁定到一组最少的特权。
在默认配置中,libvirtd 守护进程有三个级别的访问控制:
  1. 所有连接都以未经身份验证的状态开始,其中唯一允许的 API 操作是完成身份验证所需的操作。
  2. 身份验证成功后,连接具有对所有 libvirt API 调用的完整、不受限制的访问权限,或者根据客户端连接源自的套接字将其锁定为"只读"操作。
  3. 访问控制框架允许经过身份验证的连接具有由管理员定义的细粒度权限规则。
libvirt 中的每个 API 调用都有一组权限,这些权限将针对使用的对象进行验证。如果 API 调用中设置了特定标志,还将检查进一步的权限。除了检查传递给 API 调用的对象外,一些方法还会过滤其结果。

2.2.1. 访问控制驱动程序

访问控制框架设计为可插拔系统,以便将来与任意访问控制技术集成。默认情况下使用 none 驱动程序,它根本不执行访问控制检查。目前,libvirt 支持将 polkit 用作真正的访问控制驱动程序。要了解如何使用 polkit 访问驱动程序,请参阅配置文档
访问驱动程序在 /etc/libvirt/libvirtd.conf 配置文件中使用 access_drivers 参数进行配置。此参数接受一组访问控制驱动程序名称。如果请求多个访问驱动程序,则所有访问驱动程序都必须成功才能授予访问权限。要启用 'polkit' 作为驱动程序,请使用 augtool 命令:
# augtool -s set '/files/etc/libvirt/libvirtd.conf/access_drivers[1]' polkit
Copy to Clipboard Toggle word wrap
要将驱动程序设置为默认(没有访问控制),请输入以下命令:
# augtool -s rm /files/etc/libvirt/libvirtd.conf/access_drivers
Copy to Clipboard Toggle word wrap
若要使 libvirtd.conf 所做的更改生效,请重新启动 libvirtd 服务。
# systemctl restart libvirtd.service
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat