polkit服务没起来,导致防火墙命令卡住

一、问题描述:

前端时间升级漏洞,升级了polkit,导致防火墙执行**firewall-cmd --list-all**卡住,

polkit(PolicyKit)权限问题 ,是因为 firewalld 服务在向 polkit 请求权限时被阻塞或拒绝,导致进程在后台"挂起"等待授权。

为什么 polkit 会导致 firewall-cmd 卡住?

  • firewall-cmd需要修改或读取防火墙状态时,会通过 D-Bus 向 firewalld守护进程发送请求。

  • firewalld在响应前,会通过 polkit​ 检查当前用户(即使是 root)是否有权限执行该操作。

  • 如果 polkit 服务异常、规则文件损坏或 D-Bus 通信阻塞firewall-cmd就会一直等待 polkit 的授权响应,表现为"命令卡死"。

    查看polkit报错 systemctl status polkit报错:

    ● polkit.service - Authorization Manager

    Loaded: loaded (/usr/lib/systemd/system/polkit.service; static; vendor preset: enabled)

    Active: inactive (dead) since Tue 2026-05-19 10:16:17 CST; 2s ago

    Docs: man:polkit(8)

    Process: 1268741 ExecStart=/usr/lib/polkit-1/polkitd --no-debug (code=exited, status=0/SUCCESS)

    Main PID: 1268741 (code=exited, status=0/SUCCESS)

    5月 19 10:16:17 syzl-api systemd1: Starting Authorization Manager...

    5月 19 10:16:17 syzl-api polkitd1268741: Started polkitd version 0.116

    5月 19 10:16:17 syzl-api polkitd1268741: Loading rules from directory /etc/polkit-1/rules.d

    5月 19 10:16:17 syzl-api polkitd1268741: Error opening rules directory: Error opening directory "/etc/polkit-1/rules.d": Permission denied (g>

    5月 19 10:16:17 syzl-api polkitd1268741: Loading rules from directory /usr/share/polkit-1/rules.d

    5月 19 10:16:17 syzl-api polkitd1268741: Finished loading, compiling and executing 5 rules

    5月 19 10:16:17 syzl-api polkitd1268741: Lost the name org.freedesktop.PolicyKit1 - exiting

    5月 19 10:16:17 syzl-api systemd1: polkit.service: Succeeded.

    5月 19 10:16:17 syzl-api systemd1: Started Authorization Manager

二、解决:

1. 检查 polkit 服务状态

复制代码
systemctl status polkit

如果状态不是 active (running),这就是根本原因。

重启 polkit 与 D-Bus(最常用)

复制代码
# 1. 重启 polkit 服务
systemctl restart polkit

# 2. 重启 D-Bus(注意:这会短暂中断桌面和系统服务)
systemctl restart dbus

# 3. 再次测试 firewall-cmd
firewall-cmd --list-all

如果还不行就重新安装

2.重新安装 polkit 相关包

查看 polkit 相关包

rpm -qa | grep polkit

重新安装(以 Kylin/RedHat 系为例)

复制代码
yum reinstall polkit polkit-pkla-compat -y

重启服务

复制代码
systemctl restart polkit dbus firewalld

只要polkit服务起来,在执行 firewall-cmd --list-all就没问题了。

相关推荐
爱写代码的森5 小时前
鸿蒙三方库 | harmony-utils之ImageUtil图片保存到本地详解
服务器·华为·harmonyos·鸿蒙·huawei
大耳朵-小飞象7 小时前
电力安全运维的智能密码:BACS如何破解设备全生命周期管理难题,让电网安全“看得见、管得住”?
运维·安全·智慧城市·能耗系统·楼宇智控·未来生活
极客侃科技8 小时前
制造企业 MES/APS 选型:SAP PP/DS 集成、ERP-MES 边界划分与一体化架构要点
运维·架构·制造
HLC++8 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室9 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
白露与泡影10 小时前
Arthas 实战指南:从方法耗时定位到 JVM 变量热修改
服务器·jvm·c#
神奇霸王龙11 小时前
Claude Code屠榜:MiMo与Grok紧追Codex
服务器·网络·人工智能·gpt·ai·ai编程
Web极客码11 小时前
WordPress SEO优化:提升网站排名的13个关键步骤
服务器·seo·wordpress
生活爱好者!11 小时前
我把NAS当作下载机,docker一键部署qb
运维·docker·容器
groundhappy12 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python