Вопрос или проблема
Мне интересно узнать, как именно работает механизм, который выбирает пакет в качестве обновления безопасности для установки.
Меня также интересует, может ли это произойти с пакетом от третьей стороны.
По умолчанию все пакеты Ubuntu уже настроены как часть пакетов, которые выбираются для автоматических обновлений. НО фактически выполняются только обновления безопасности из-за моих настроек. Я пытаюсь понять, как выбираются пакеты в качестве пакетов безопасности.
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
...
}
Насколько я понимаю, файл для пакета из репозитория третьей стороны в /var/lib/apt/lists
должен иметь определенное Origin:
, чтобы можно было использовать Unattended-Upgrade::Origins-Pattern
. Я пытался это с Brave, и, к сожалению, там нет Origin:
, но предполагая, что он есть для другого пакета, мне интересно, как это будет работать, если не все автоматические обновления включены, а только обновления безопасности.
ИИ говорит мне, что я должен выполнить apt-cache policy firefox
, чтобы проверить, отмечен ли пакет как пакет безопасности, и я вижу, что мой пакет Firefox в данный момент НЕ установлен как пакет безопасности. Но разве не каждое новое обновление браузера не является обновлением безопасности? Я думаю, что нет, но по стандартам Ubuntu. По крайней мере, судя по примеру, который дает мне ИИ.
firefox:
Установлено: 1.2.3-4
Кандидат: 1.2.3-4
Таблица версий:
1.2.3-4 500
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
1.2.2-3 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Для меня это просто показывает oracular/main
, а не -security
Ответ или решение
Вопрос о том, как включить пакеты 3-й стороны в автоматические обновления, когда разрешены только обновления безопасности, требует детального понимания механизма работы обновлений в Ubuntu и принципов, используемых для классификации пакетов как обновлений безопасности.
Механизм выбора пакетов для обновления безопасности
Ubuntu использует систему управления пакетами APT для установки и обновления программного обеспечения. Пакеты, которые соответствуют критериям обновления безопасности, четко обозначаются в репозиториях и могут быть автоматически распознаны системой обновлений.
При настройке unattended-upgrades
в конфигурационном файле /etc/apt/apt.conf.d/50unattended-upgrades
, часть кода, связанная с разрешенными источниками, выглядит следующим образом:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
...
}
Здесь "${distro_id}:${distro_codename}-security"
гарантирует, что допустимы только обновления из секции безопасности данного дистрибутива. Таким образом, для пакета, чтобы его обновления автоматически устанавливались, он должен быть помечен как пакет безопасности.
Как пакеты 3-й стороны могут быть отнесены к обновлениям безопасности
Для 3-х сторонних пакетов, размещенных в пользовательских репозиториях, наличия метки Origin:
в файле /var/lib/apt/lists
недостаточно для автоматической классификации их как обновления безопасности.
-
Определение метки безопасности: Пакет должен быть загружен из репозитория, который обозначен как
security
. В зависимости от политики конкретного пакета, необходимо, чтобы его разработчик официально пометил обновления как безопасные. Если это не предусмотрено, автоматические обновления для этого пакета будут недоступны. -
Добавление оригинальных меток: Если у вас есть доступ к пакету, который вы хотите отнести к обновлениям безопасности, вам потребуется создать собственный репозиторий или использовать существующий, где пакет будет правильно помечен и поддерживаться.
В вашем примере с пакетом Brave, если в его метаданных нет строки Origin:
, это означает, что система не сможет его отнести к обновлениям безопасности, даже если вы добавите его в Unattended-Upgrade::Origins-Pattern
. Если пакет, который вы хотите обновить, не имеет меток безопасности, его невозможно будет включить в автоматическое обновление, разрешенное вами.
Как увидеть, является ли пакет безопасным
Вы можете использовать команду apt-cache policy <имя_пакета>
, чтобы проверить, отмечен ли пакет как безопасный. Это важно, потому что, как вы заметили на примере с Firefox, его версия не является частью списка *-security
, следовательно, для вашей системы она не рассматривается как обновление безопасности:
firefox:
Installed: 1.2.3-4
Candidate: 1.2.3-4
Version table:
1.2.3-4 500
500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
1.2.2-3 500
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
Заключение
Включение пакетов 3-й стороны в автоматические обновления безопасности возможно только если они помечены соответствующим образом и доступны через официальный репозиторий. К сожалению, если пакет не имеет статуса безопасности, он не будет обновлен в автоматическом режиме. Рекомендуется следить за новыми версиями и существенно обновлять такие пакеты вручную. Используйте команды APT для контроля версий и следите за обновлениями от поставщиков программного обеспечения для поддержания безопасности вашей системы.