Ubuntu завершила перевод базовых утилит на Rust: в релизе 26.10 последние три команды, остававшиеся на GNU Core Utilities, — cp, mv и rm — перешли на uutils coreutils, реализацию на Rust, которую Canonical внедряет в дистрибутив с 2025 года. Остальные утилиты, от ls и cat до chmod и du, переехали раньше. Новость прошла почти незаметно: изменение упомянуто лишь в рабочих заметках к выпуску Ubuntu 26.10.
Почему cp, mv и rm задержались до 26.10
В 26.04 LTS эти три команды сознательно оставили на версиях GNU. Причиной стали проблемы TOCTOU (time-of-check to time-of-use), которые мешали полной реализации. Их выявили во время аудита: Canonical заказала компании Zellic два раунда проверок с декабря 2025 по март 2026 года, причём в первую очередь проверяли самые чувствительные с точки зрения безопасности утилиты. По итогам двух раундов Zellic зафиксировала 113 замечаний, 44 из которых получили идентификаторы CVE. По словам Canonical, подавляющее большинство из них устранено.
Последний отрезок пути тоже не обошёлся без сбоев. В июле cp из uutils вернули в архив, а затем снова убрали — команда ломала сборку live-образов. Исправление выпустили быстро: разработчики пометили проблему как «Critical», фикс ушёл в upstream, и миграция успела к 26.10.
Что меняется для администратора
При наборе команд на первый взгляд ничего не меняется. uutils coreutils задуман как замена GNU-утилит с сохранением поведения: любое расхождение с GNU в проекте считают багом. При этом сами разработчики отмечают, что часть опций может пока отсутствовать или работать иначе.
Если вы предпочитаете остаться на версиях GNU, есть возможность установить пакет coreutils-from-gnu, в котором собраны все нужные компоненты.
Следующий этап: ntpd-rs и переход на Rust
Coreutils — лишь часть более широкой кампании. Ранее в этом году Canonical стала золотым спонсором Trifecta Tech Foundation, выделяя €40 000 в год на поддержку системного ПО, написанного на безопасных в плане памяти языках. Текущая цель в рамках этой работы — ntpd-rs, переписанный на Rust инструмент синхронизации часов, который использует Ubuntu. Работа ещё идёт, но версия уже доступна для тестирования, а переход на неё по умолчанию запланирован в Ubuntu 27.04.
Canonical постепенно движется к завершению своей программы «оксидирования» Ubuntu, и речь не о слепом включении новых компонентов: подход выглядит размеренным, шаг за шагом. Для российских администраторов это означает, что привычные команды в ближайших релизах Ubuntu будут вести себя как раньше, но при нестандартных сценариях — скриптах, опирающихся на редкие опции GNU, — стоит проверять поведение заранее. Если сборка или автоматизация завязаны на конкретные флаги cp, mv или rm, надёжнее явно установить coreutils-from-gnu и зафиксировать версию пакета, чем ловить расхождения в проде. Отдельно стоит учесть, что Ubuntu 26.04.1 LTS остаётся на GNU-версиях этих команд, а значит, обновление до 26.10 — это как раз тот момент, когда стоит прогонять свои скрипты.
Частые вопросы
Кого касается это изменение?
Всех, кто работает с Ubuntu 26.10 и более поздними версиями: cp, mv и rm там теперь реализованы на Rust. На предыдущих релизах, включая 26.04 LTS, эти команды остаются GNU-версиями.
Что именно изменилось в Ubuntu 26.10?
Последние три утилиты GNU Core Utilities — cp, mv и rm — заменены на реализацию из проекта uutils coreutils на Rust. Остальные команды перешли на неё в более ранних выпусках.
Как вернуть GNU-версии команд?
Установите пакет coreutils-from-gnu: в нём собраны все необходимые компоненты GNU. Это штатный способ остаться на привычном поведении утилит.
Будут ли мои скрипты работать как раньше?
uutils задуман как замена с сохранением поведения, и любое расхождение с GNU считается багом. Однако разработчики предупреждают: некоторые опции могут отсутствовать или вести себя иначе — проверяйте критичные для вас флаги.
Почему cp, mv и rm не перевели сразу в 26.04?
Их задержали из-за проблем TOCTOU, которые мешали полной реализации. Эти вопросы выявили в ходе аудита Zellic, проводившегося с декабря 2025 по март 2026 года.
Сколько проблем нашли при аудите?
За два раунда Zellic зафиксировала 113 замечаний, 44 из них получили CVE. По данным Canonical, подавляющее большинство уже устранено.
Что случилось с cp летом?
В июле версию cp из uutils вернули в архив и снова убрали: она ломала сборку live-образов. Проблему пометили как критическую, исправление ушло в upstream, и миграция успела к 26.10.
Что дальше переведут на Rust?
Следующая цель — ntpd-rs, реализация инструментов синхронизации часов. Она уже доступна для тестирования, а переход по умолчанию намечен на Ubuntu 27.04.
Источник: itsfoss.com