Глиф Учебники

Автоматические обновления безопасности

Справочник · Debian · 2 минуты чтения

Поставьте пакет — в Debian автоматические обновления включаются вместе с ним:

Bash
sudo apt update
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgrades

Последняя команда спрашивает, включить ли автоматическую загрузку и установку обновлений, — ответьте «Да». Она записывает (или проверяет) файл /etc/apt/apt.conf.d/20auto-upgrades с двумя строками:

Текст
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

"1" — делать каждый день: обновлять список пакетов и ставить обновления. "0" — выключено.

Что ставится

Настройки — в файле /etc/apt/apt.conf.d/50unattended-upgrades. По умолчанию в Debian ставятся:

Срочные исправления (-updates) и backports по умолчанию не ставятся — для них в файле есть закомментированные строки. Переход на новый выпуск unattended-upgrades не делает никогда.

Проверить, что работает

Bash
sudo unattended-upgrade --dry-run --debug
systemctl list-timers 'apt-daily*'

Первая команда показывает, что было бы установлено, ничего не ставя. Вторая — когда сработают таймеры: apt-daily скачивает список пакетов, apt-daily-upgrade ставит обновления.

Что уже было поставлено, записано в журнале:

Bash
sudo less /var/log/unattended-upgrades/unattended-upgrades.log

Перезагрузка

Новое ядро и некоторые библиотеки начинают работать только после перезагрузки, а сама unattended-upgrades по умолчанию компьютер не перезагружает. Разрешить перезагрузку в заданное время — своим файлом настроек (его ещё нет — nano создаст его при сохранении):

Bash
sudo nano /etc/apt/apt.conf.d/52unattended-upgrades-local

В файле — две строки: разрешить перезагрузку и задать её время.

Текст
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

Перезагрузка случится, только если обновление её требует, — например, после установки нового ядра (тогда появляется файл /var/run/reboot-required). Файлы в /etc/apt/apt.conf.d/ читаются по порядку имён, поэтому строки из 52… действуют поверх 50…, а сам файл 50unattended-upgrades остаётся нетронутым и не будет конфликтовать с обновлениями пакета. Проверить, что настройка прочиталась:

Bash
apt-config dump | grep -i automatic-reboot

Автоматическая перезагрузка прерывает работу всех программ и пользователей на сервере. Включайте её, только если службы сами поднимаются после загрузки, а время перезагрузки выбрано на часы без нагрузки.

Подводные камни