内核类补丁的生效核查是什么
内核、glibc、systemd 等底层组件更新后,包已安装但运行中的实例仍是旧版本:内核无法原地替换,必须重启(或依赖 Livepatch 类热补丁方案)才真正生效。因此补丁管理必须单独跟踪「待重启」状态,把重启动作排进维护窗口,否则漏洞清单显示已修复而实际暴露窗口一直存在。
基本信息
| 适用系统 | RHEL/CentOS/Rocky(dnf)、Ubuntu/Debian(apt) |
|---|---|
| 生效条件 | 运行中的内核无法原地替换,需重启或热补丁 |
| 热补丁 | kpatch / Livepatch 覆盖部分补丁类型,仍需定期规划重启 |
| 批量重启 | 分组滚动执行,先确认服务高可用与流量摘除 |
待重启检查
待重启检查
dnf needs-restarting -r # RHEL 系:退出码 1 表示需要重启
cat /var/run/reboot-required 2>/dev/null ; cat /var/run/reboot-required.pkgs # Ubuntu 系
uname -r # 当前运行内核
rpm -q kernel | tail -3 # 已安装的内核包(RHEL 系)
ls /boot/vmlinuz-* 2>/dev/null # 已安装的内核镜像(Debian 系)典型使用场景
- 补丁窗口规划:把需要重启的主机单独列为一批,集中安排窗口
- 合规检查:证明内核类漏洞已实际生效修复,而不只是包已安装
- 主机安全检查:长时间未重启的主机往往同时存在补丁滞后问题
- 高可用验证:滚动重启前确认集群与负载均衡能否承受单节点退出
- 变更复盘:统计「已安装未重启」的存续时长,衡量流程执行度
状态判断
| 现象 | 含义 | 动作 |
|---|---|---|
| needs-restarting -r 返回 1 | 有内核或关键库待生效 | 排入重启窗口 |
| reboot-required 文件存在 | Ubuntu 系需重启 | 查看 reboot-required.pkgs 确认范围 |
| uname -r 与已安装内核不一致 | 运行的是旧内核 | 安排重启并确认引导项 |
| 无待重启标记 | 当前已生效 | 纳入常规巡检 |
需求侧常忽略『重启才算修完』:清单显示已安装,实际运行版本还是旧的,评估暴露时间时必须把这段未重启期算进去。
重启是高影响操作:先在测试或非核心节点验证引导与业务恢复,保留带外管理通道(如 BMC/iLO)以防系统起不来。