ubuntu默认不自动安装安全补丁,必须显式启用unattended-upgrades服务并正确配置:一、检查是否安装(dpkg -l | grep unattended-upgrades)及服务状态(systemctl status unattended-upgrades);二、确保20auto-upgrades中apt::periodic::update-package-lists "1"和apt::periodic::unattended-upgrade "1"生效;三、在50unattended-upgrades中确认allowed-origins包含-security和-updates源;四、启用自动重启需同时设置automatic-reboot "true"与automatic-reboot-time "02:00";五、安装mailutils并配置mail地址以启用通知;六、注意内核包默认不升级,需额外配置或使用hwe元包。

Ubuntu 默认不自动安装安全补丁,只下载更新包或提示手动升级;要真正实现“下载 + 安装 + 重启”全自动闭环,必须显式启用 unattended-upgrades 并正确配置触发条件。
如何确认 unattended-upgrades 是否已安装并启用
它不是默认开机自启的服务,即使包已存在,也可能处于禁用状态。
- 检查服务状态:
sudo systemctl status unattended-upgrades—— 若显示inactive (dead)或disabled,说明未生效 - 检查包是否安装:
dpkg -l | grep unattended-upgrades—— 若无输出,需先运行sudo apt install unattended-upgrades - 验证配置文件是否存在且被加载:
ls /etc/apt/apt.conf.d/20auto-upgrades和/etc/apt/apt.conf.d/50unattended-upgrades
关键配置文件:20auto-upgrades 控制执行节奏
这个文件决定“多久检查一次、是否下载、是否安装”,但很多人只改了它,却忽略 50unattended-upgrades 中的源白名单,导致“看似启用,实则静默跳过”。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
APT::Periodic::Update-Package-Lists "1";表示每天运行apt update -
APT::Periodic::Unattended-Upgrade "1";表示每天尝试运行unattended-upgrade -
APT::Periodic::AutocleanInterval "7";清理旧 deb 包(可选) - ⚠️ 注意:值必须是整数字符串(带引号),写成
1(无引号)会导致语法错误,配置被忽略
50unattended-upgrades 决定“哪些包能装”,安全补丁默认不包含在内
Ubuntu 的安全更新源分多个通道(security, updates, proposed),而该文件默认只允许 security 源中的 main 和 restricted 组件——但很多关键补丁(如内核、cloud-init)实际发布在 updates 源中。
- 检查当前允许源:
grep -v '^//' /etc/apt/apt.conf.d/50unattended-upgrades | grep Origin - 若需启用
updates源的安全补丁,需取消注释并修改对应行:"${distro_id}:${distro_codename}-updates"; - 修改后必须运行
sudo apt update才能让新源生效,否则unattended-upgrade仍查不到可用更新 - 测试配置是否合法:
sudo unattended-upgrade --dry-run -d—— 查看日志中是否列出待安装包
自动重启和邮件通知的常见失效点
补丁装完不重启,很多内核/CVE 修复根本没生效;想收通知却收不到,大概率是 mail 命令未就位或配置路径错位。
- 启用自动重启需两步:
① 在50unattended-upgrades中设置Unattended-Upgrade::Automatic-Reboot "true";
② 同时确保Unattended-Upgrade::Automatic-Reboot-Time "02:00";(时间格式必须为 HH:MM) - 邮件通知依赖
mail命令,但 Ubuntu Server 默认不装mailutils:sudo apt install mailutils,再配置Unattended-Upgrade::Mail "admin@example.com"; - 日志默认写入
/var/log/unattended-upgrades/,但若磁盘满或日志轮转异常,可能看不到记录 —— 建议定期检查该目录大小
最易被忽略的是:即便所有配置都对,unattended-upgrade 也**不会升级内核包(linux-image-*)**,除非你额外开启 Unattended-Upgrade::InstallOnShutdown "false"; 并配合 update-notifier-common,或者改用 apt install linux-generic-hwe-22.04 这类元包绑定策略。这点在生产服务器上常导致 CVE-2024-XXXX 类漏洞长期未修复。










