Оставлять старые установленные ядра может быть опасно?
Я использую Ubuntu уже почти 2 года, и в Интернете я всегда сталкиваюсь с руководствами по удалению старых версий ядра. Даже здесь, в Ask Ubuntu, есть много вопросов.
Мой вопрос: должен ли я это сделать? Есть ли проблемы или может быть опасно оставлять эти старые версии установленными? Есть ли преимущества?
Редактировать:
Просто два момента, чтобы уточнить вопрос:
- Я не спрашиваю инструкции о том, как удалить старые ядра.
- Меня не беспокоит безопасность при удалении старых ядер. Вместо этого я беспокоюсь о безопасности, оставляя их установленными.
7 ответов
Вам не нужно оставлять старые ядра, и вам не нужно их удалять.
Старые ядра просто занимают место на вашем жестком диске. Вот и все. Вы можете установить одно или два старых ядра на тот случай, если вы захотите загрузиться с одним из них.
Старые ядра никак не влияют на работающую систему.
Таким образом, на 100% БЕЗОПАСНО оставлять старые ядра установленными, если это был вопрос. Они не будут использоваться, если вы не намеренно загрузитесь с одним из них.
Единственная проблема, которую вы получаете, сохраняя все старые ядра - это пространство. Каждый образ ядра вместе с заголовками занимает около 300 МБ.
В конечном итоге это может заполнить раздел и сделать обновления безопасности невозможными.
Вы всегда хотите сохранить хотя бы одно старое ядро, чтобы иметь запасной вариант на всякий случай.
Если у вас установлена нормальная Ubuntu, и если вы регулярно запускаете sudo apt-get autoremove
, apt-get
предлагает удаление старых ядер. Все, что вам нужно сделать, это ответить "Да"! Сценарий, отвечающий за удаление старых ядер, всегда гарантирует, что у вас есть хотя бы одно резервное ядро на случай, если новейшее ядро вам не подходит.
Сценарий, который я упомянул выше, можно найти здесь: /etc/kernel/postinst.d/apt-auto-removal
, Цитировать оттуда:
# Автор: Стив Лангасек # # Отметить как не для автоматического удаления те пакеты ядра, которые: # - текущая загруженная версия # - версия ядра, к которой мы обратились # - последняя версия ядра (определяется по правилам, скопированным из grub # пакет для определения, какое ядро загружаться) # - вторая последняя версия ядра, если загруженная версия ядра # уже самая последняя и этот скрипт вызывается для той же версии, # для обеспечения доступности резервной копии в случае, если недавно установленная # Ядро на этом ABI не загружается # В общем случае это приводит к сохранению ровно двух ядер, но может # результат в сохранении трех ядер. Лучше ошибиться на стороне # сохранение слишком большого количества ядер, чем сохранение слишком малого.
Да, это может быть - если консоль доступна, а меню grub позволяет выбрать, какое ядро загружать (не редактировать параметры, а выбрать какое). Если это так, непривилегированный пользователь может выбрать старое ядро (либо перезагрузив компьютер, если ему это разрешено, потянув за вилку и перезапустившись, либо попав на консоль при загрузке), и приступить к использованию локального ошибка расширения root, исправленная в новом ядре (случайный пример: CVE-2012-0056).
Когда новые ядра, содержащие обновления безопасности, установлены, вы должны либо удалить старые, либо убедиться, что они не могут быть выбраны для загрузки злонамеренным пользователем.
Я не вижу никакой опасности в том, чтобы оставить старые ядра на месте - просто сказав, что вы позаботитесь о достаточном количестве места в /boot, а также для будущих нужд.
Но у меня есть особая причина держать всегда одно старое ядро, которое больше не получает исправлений: со мной часто случается, что самое новое активное ядро исправляется, а затем это не может запустить важный сервис - это часто беспроводная поддержка. Затем я перезагружаюсь со своего старого запасного ядра, а затем переустанавливаю неисправное более новое ядро, и все снова работает.
Закаленное ядро несет лишь незначительную опасность: я использую его только для кратковременного ремонта!
Возможно, хотя и не очень правдоподобно, если оставить старые ядра установленными, это угроза безопасности.
Новые версии ядра обычно исправляют проблемы безопасности. Когда вы загружаетесь в новое ядро, вы должны быть защищены от этих проблем безопасности.
Вот сценарий, в котором можно было бы использовать это:
- Атакующий может удалить ядра из вашего загрузочного раздела.
- Атакующий удаляет более новые версии ядра, заставляя пользователя загружать старое, непатентованное ядро.
- Атакующий заставляет пользователя загружать старое ядро.
- После загрузки злоумышленник использует уязвимость, чтобы получить доступ к компьютеру.
Это возможно, хотя и не очень правдоподобно: как правило, если у злоумышленника есть доступ к вашей машине, у вас будет плохой день. Он может почти так же легко скомпрометировать ваши initramfs, даже если включено полное шифрование диска, и установить кейлоггер или еще хуже.
Наличие хотя бы предыдущего ядра может быть положительным в случае плохой конфигурации или странных сбоев. Это происходит в Linux, и поскольку ОС не является OEM, тогда нет системы восстановления, если вы не сделаете это заранее. На той же странице сбой или плохая конфигурация могут быть настолько плохими, что их невозможно исправить, если откатиться назад.
Вы можете перейти на использование снимков BTRFS AskUbuntu