定期更新Ubuntu系统是整体系统安全性的最重要方面之一。如果您不使用最新的安全补丁更新操作系统的软件包,那么您的计算机容易受到攻击。
如果您管理多台Ubuntu计算机,则手动更新系统软件包可能很耗时。即使您管理单个Ubuntu安装,有时您也可能忽略了重要更新。这是自动无人值守更新很方便的地方。
在本教程中,我们将逐步介绍如何在Ubuntu 18.04上配置自动无人值守更新。相同的步骤适用于Ubuntu 16.04和任何基于Ubuntu的发行版,包括Kubuntu,Linux Mint和Elementary OS。
先决条件
在继续学习本教程之前,请确保您以个具有sudo特权的用户身份登录。
安装无人值守升级软件包
unattended-upgrades
软件包用于自动安装更新的软件包。可能是该软件包已经安装在Ubuntu系统上,如果没有,您可以在终端中输入以下命令来安装该软件包:
sudo apt install unattended-upgrades
安装完成后,无人参与的升级关机服务将启用并自动启动。您可以输入以下内容进行验证:
● unattended-upgrades.service - Unattended Upgrades Shutdown
Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enab
Active: active (running) since Sun 2019-03-10 07:52:08 UTC; 2min 35s
Docs: man:unattended-upgrade(8)
CGroup: /system.slice/unattended-upgrades.service
配置无人值守自动更新
我们可以通过编辑/etc/apt/apt.conf.d/50unattended-upgrades
文件来配置unattended-upgrades
程序包设置。默认配置对于大多数用户来说应该可以正常工作,但是您可以打开文件并根据需要进行更改。
无人参与升级软件包,可以配置为更新所有软件包或仅更新安全性。第一部分定义了将自动更新哪些类型的软件包。默认情况下,将只安装安全更新,如果你想能够从其他存储库,你可以通过从行的开头双斜线//
取消对相应存储库的更新。 //
之后的所有内容均为注释,程序包不会读取。
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// Extended Security Maintenance; doesn't necessarily exist for
// every release and this system may not have it installed, but if
// available, the policy for updates is such that unattended-upgrades
// should also install from here by default.
"${distro_id}ESM:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
如果出于任何原因要禁止某些程序包自动更新,只需将其添加到程序包黑名单中即可:
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Package-Blacklist {
// "vim";
// "libc6";
// "libc6-dev";
// "libc6-i686";
};
如果由于某种原因自动更新出现问题,您可能还希望接收电子邮件。为此,请取消注释以下两行,然后输入您的电子邮件地址。确保您具有可以发送已安装在系统上的电子邮件的工具,例如mailx
或 postfix
。
/etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Mail "your@email.com";
Unattended-Upgrade::MailOnlyOnError "true";
启用无人值守的自动更新
要启用自动更新,您需要确保apt配置文件/etc/apt/apt.conf.d/20auto-upgrades
至少包含以下两行,默认情况下应包括以下两行:
/etc/apt/apt.conf.d/20自动升级
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
以上配置会更新软件包列表,并每天安装可用的更新。
您还可以添加以下行,每7天清除一次本地下载存档。
/etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::AutocleanInterval "7";
启用/禁用自动更新的另一种方法是运行以下命令,该命令将修改(或创建(如果不存在的话))/etc/apt/apt.conf.d/20auto-upgrades
。
sudo dpkg-reconfigure -plow unattended-upgrades
测试
要测试自动升级是否正常运行,请执行试运行:
sudo unattended-upgrades --dry-run --debug
输出应如下所示:
...
pkgs that look like they should be upgraded:
Fetched 0 B in 0s (0 B/s)
fetch.run() result: 0
blacklist: []
whitelist: []
No packages found that can be upgraded unattended and no pending auto-removals
自动无人值守升级的历史记录在/var/log/unattended-upgrades/unattended-upgrades.log
文件中。
结论
在本教程中,您学习了如何配置自动无人参与更新并保持系统为最新。
如果您有任何问题或反馈,请随时发表评论。