Allowed-Origins白名单控制从哪些软件源(Origin)及组件(Component)允许安装更新,而非具体软件包;默认仅信任-security源的main/restricted组件,-updates等源需手动启用,且语法必须正确(双引号、分号、大小写敏感),否则整块配置被忽略。

unattended-upgrades 的 Allowed-Origins 白名单控制什么
它不控制“哪些软件包能升级”,而是控制“从哪些软件源(Origin)的哪些组件(Component)里允许安装更新”。unattended-upgrades 默认只信任 ${distro_id}:${distro_codename}-security 源里的 main 和 restricted 组件——这意味着即使你装了内核、cloud-init 或 systemd,只要它们发布在 -updates 源(而非 -security),就不会被自动安装。
- 常见被遗漏的更新来源:
${distro_id}:${distro_codename}-updates(含内核、驱动、基础服务修复) - 某些企业版或云镜像还会用到:
${distro_id}:${distro_codename}-proposed或${distro_id}-proposed(测试通道,慎开) - 组件名必须精确匹配:比如
universe或multiverse默认不在白名单中,即使源存在也不会触发安装
/etc/apt/apt.conf.d/50unattended-upgrades 中怎么写白名单
关键不是加新行,而是取消注释并修正语法。默认配置里相关行是注释掉的,且变量拼写可能过时(如旧版用 origin 而非 Origin)。必须确保:
- 每条白名单规则用双引号包裹,结尾有分号;
-
Origin和Archive字段大小写敏感,Ubuntu 22.04+ 推荐用Origin; - 实际生效的是
Unattended-Upgrade::Allowed-Origins块内的内容,不是注释区外的孤立行; - 示例(启用 security + updates 的 main/restricted):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
"${distro_id}:${distro_codename}-updates";
};
⚠️ 注意:${distro_codename} 在 Ubuntu 22.04 是 jammy,24.04 是 noble,运行 lsb_release -sc 确认;写错会导致整块配置被忽略。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
如何验证白名单是否生效
不能只看配置文件是否存在,得看 unattended-upgrades 实际加载了哪些源。最直接的方式是:
- 运行
sudo unattended-upgrades --dry-run -d,输出里会列出 “Allowed origins:” 后的具体源列表; - 检查日志:
tail -n 20 /var/log/unattended-upgrades/unattended-upgrades.log,搜索 “Allowed-Origins” 或 “No packages found for upgrade”,后者说明白名单没覆盖到待升级包; - 手动触发一次:
sudo unattended-upgrades,观察是否开始下载linux-image-*或systemd类包——这些通常在-updates源里。
白名单之外:包级黑名单和 hold 机制的区别
白名单管“源”,黑名单(Package-Blacklist)和 dpkg --set-selections 的 hold 状态管“具体包”。三者关系是:
- 白名单未覆盖的源 → 包再重要也不会装;
- 白名单已覆盖的源 → 但该包在
Package-Blacklist里 → 跳过; - 白名单已覆盖、未被黑名单 → 但该包被
hold→apt层拒绝升级,unattended-upgrades会记录 “package is held back” 并跳过。
真正要锁定某个包(比如 nginx 不随系统升级),dpkg --set-selections 的 hold 更可靠;Package-Blacklist 只对 unattended-upgrades 生效,不影响手动 apt upgrade。

















