LINUX.ORG.RU

Ubuntu 25.10 переходит на sudo, написанный на Rust

 , ,


2

7

В Ubuntu 25.10 собираются использовать sudo-rs по умолчанию вместо привычного sudo. Это реализация утилиты повышения привилегий sudo, написанная на языке программирования Rust.

sudo-rs разработана Trifecta Tech Foundation (TTF), некоммерческой организацией, которая создает безопасные компоненты с открытым исходным кодом для инфраструктурного программного обеспечения.

В sudo-rs обеспечена совместимость с классическими утилитами sudo и su, что даёт возможность использовать sudo-rs в качестве прозрачной замены sudo в системе. Для пользователей, не желающих переходить на новые утилиты из uutils и sudo-rs, в Ubuntu 25.10 будет предусмотрена возможность обратного перехода на привычные варианты системных утилит coreutils и sudo.

Замена sudo на sudo-rs — часть глобального плана по повышению безопасности и качества Ubuntu путём перехода на компоненты, написанные на языке Rust.

>>> Подробности

★★★★★

Проверено: maxcom ()
Ответ на: комментарий от perl5_guy

Тоже самое с управлением памятью. Зачем я буду стрелять себе по ногам если могу вместо этого пойти трахнуть чайкУ?

Чтобы не трахаться с управлением памятью, есть GC. Но иногда потрахаться с памятью это именно то, что нужно. Раст это какой-то нелепый мутант, собравший всё худшее из двух миров. Трахать свой мозг там приходится всегда, буквально в каждой строчке.

bread
()
Ответ на: комментарий от gaylord

Из зависимостей там libc и логгер.

Этого более чем достаточно чтобы дать возможность владельцам crates.io засунуть троян в крейт libc и после очередного обновления пакетика rust-sudo-rs на убунте получить полный доступ к миллионам убунт.

И нет, мэинтейнер пакетика rust-sudo-rs, точно не будет заглядывать в крейт libc, а просто запустит сборку при том, что в debian/rules пакета тупо dh $@ --buildsystem cargo. А dh-cargo ничесоже сумняшеся сольёт затрояненную прокладку libc c crates.io

Stanson ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Так в популярных языках зачастую нельзя выйти за пределы массива

JS, Python, Java

А ты смешной. Я же об этом и написал. Все эти мемори сейфти фичи в рантайме вычисляются, роняя производительность и культуру программирования в ноль. В процессорах уже есть предсказатель ветвлений. Ты хочешь сказать, что аппаратные массивы сложнее сделать?

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от BceM_IIpuBeT

Все эти мемори сейфти фичи в рантайме вычисляются, роняя производительность

Сказки, подобные проверки очень дешевы, и компиляторы могут их эффективно устранять, вот схожая тема но про переполнение, я привел несколько примеров на godbolt: Rust, sdl3, обработка событий в треде (комментарий)

Ты хочешь сказать, что аппаратные массивы сложнее сделать?

То что ты просишь уже не просто реализовали, его уже собрались удалять с приходом Intel APX, называется Intel MPX.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от neumond

Оригинальный судо делает практически в одиночку Тодд Миллер. Это точно безопаснее чем банда наглухо отбитых фанатов раста?

Точно безопаснее. Потому что при сборке кода Тодда Миллера система сборки не лезет на левые сайтики и не скачивает неизвестно что с них без какого-либо контроля.

Stanson ★★★★★
()

Фу, тормозно же будет!

hibou ★★★★★
()
Ответ на: комментарий от bread

В Rust изначально должен был быть GC, но скорее всего не осилили, и вместо него заставляют программистов вручную расставлять неэффективный Rc<>.

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

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

GNU из GNU/Linux потихоньку удаляют?

yu-boot ★★★★★
()
Ответ на: комментарий от neumond

Как понял я, сейчас есть очень много народу, которые привыкли к си. Они его изучили, разобрали, нашли хитрые лайфхаки. В этом и основная проблема. Чтобы перейти на раст, им придется переучиваться. Так что сейчас это больше привычка и традиция.

LightDiver ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Ааааа. Мы не жрем калл, мы не жрем калл. Аппаратные проверки за O(1) нам не нужны, ааааа.

-- Вебмакака, проснись, ты обосрался.
-- А я и не сплю.
BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от BceM_IIpuBeT

Ну так пользуйся Intel MPX, что тебе еще нужно то? Кстати, такой умный программист в машинных кодах как ты, думает что сейчас проверки O(n^2)? А когда они будут реализованны в микрокоде, как улучшится ситуация?

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Чтобы перейти на раст, им придется переучиваться

Ты хотел сказать, что нужно придумать новые хитрые лайфхаки для новой лабуды?

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от PPP328

Про совместимость 4.2. Заявлена только базовая, части функционала оригинала нет

Впрочем, как обычно) странно что нет заявлений, что растовый судо быстрее

pihter ★★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

Естественно в любом языке есть свои приколы, которые нужно учитывать, но раст более молодой язык и его изначально проектировали более стандартизированно. Те места, которые в си нужно просто знать, которые логикой не объясняются в принципе, в раст понятны «интуитивно» частенько.

Но тут врубается психология привычки. Точно так же народ сидит на винде, потому что он ее «уже знает». А потому считает более удобной. Он знает где и как чистить реестр, где ломать софт, как запускать его от админа. А в линуксе надо изучать все заново и все «не так». Та же самая психологическая блокада.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Те места, которые в си нужно просто знать, которые логикой не объясняются в принципе, в раст понятны «интуитивно» частенько.

Примеры? Всегда интересно, а ты всегда не пишешь %)

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от Stanson

неизвестно что с них без какого-либо контроля

В нормальных языках в сорцах всегда присутствует lockfile, с контрольными суммами и списком всего что необходимо со стороны. Для особых параноиков есть cargo build --offline. Ну и как будто весь твой дистр линуха тебе на дискете принесли лично под роспись, а не скачано с левых сайтиков.

neumond
()
Ответ на: комментарий от DrRulez

во многих проектах зависимости прибиты гвоздями к конкретным версиям зависимостей

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

rupert ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Да хотя бы те же названия переменных. Мне уже показали, что в с11 им есть альтернативы более стандартизированные, но тут же сказали, что лучше их не использовать.

LightDiver ★★★★★
()
Ответ на: комментарий от xwicked

Ппц, как засвербило в одном месте, капец, как хочу.

Один раз можно. Один раст не пидораст.

rupert ★★★★★
()
Ответ на: комментарий от LightDiver

Ну это c99 еще а не c11, но все комментарии которые призывали их не использовать были ложными от части либо полностью, я в том же треде ответил анонимусу и хоббиту. Использовать можно и нужно, более того, в некоторых проектах только их и можно использовать.

Это уже скорее проблема сообщества, половина сишников знают только K&R и никогда не слышали о алиасинге, много разных стандартов кодирования, да. Скоро и в Rust такое будет.

MOPKOBKA ★★★★★
()
Ответ на: комментарий от neumond

Для особых параноиков есть cargo build –offline.

И откуда же возьмутся эти оффлайн крейты? А, их надо точно так же с crates.io скачать, только заранее…

Ну и как будто весь твой дистр линуха тебе на дискете принесли лично под роспись, а не скачано с левых сайтиков.

При сборке нормальных пакетов дистрибутива каждый пакет имеет своего мейнтейнера. Который хотя бы формально обязан прошерстить сырцы, посмотреть что там на самом деле поменяли и нет ли каких-то вызывающих вопросы коммитов. И например glibc которая используется при сборке vtbyntqythjv нормального sudo уже хотя бы формально проверена меинтейнером glibc.

В случае растопакета оно при сборке может утянуть с crates.io всё что заблагорассудится, и сильно сомнительно что растомеинтейнер полезет смотреть что там в крейтах-зависимостях поменялось. Он же не меинтейнер крейта libc, а rust безопасный же шопипец, у него даже мысли не возникнет это сделать.

А на crates.io никому неизвестные владельцы могут запросто подменить что угодно для кого угодно и все контрольные суммы прекрасно совпадут.

Stanson ★★★★★
()
Ответ на: комментарий от bread

Почему? Заморозить версию, все баги считать особенностями реализации, новое оборудование производить совместимым с финальной версией ядра. Всё.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от u5er

Делать что-то новое гораздо сложнее, чем паразитировать на существующем.

rupert ★★★★★
()
Ответ на: комментарий от neumond

Ну и как будто весь твой дистр линуха тебе на дискете принесли лично под роспись, а не скачано с левых сайтиков.

Ты не поверишь, но есть дистрибутивы, которые поставляются на завизированных цифровых накопителях под роспись получающей стороны.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от bread

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

С чатжпт немного меньше траха. Это практически единственный способ писать код на расте.

rupert ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Ну так пользуйся SSE, что тебе еще нужно то? Кстати, такой умный программист в машинных кодах как ты, думает что сейчас перемножение O(n^n)? А когда они будут реализованны в микрокоде, как улучшится ситуация?

BceM_IIpuBeT ★★☆☆☆
()
Ответ на: комментарий от Stanson

Есть публичные результаты аудита крейтов:

https://lib.rs/crates/libc/audit

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

Аудиты исходников sudo и его зависимостей попробуй ещё найди. Ещё неизвестно какой ерунды там мейнтейнеры дистрибутивов патчами натолкали.

Тем не менее я не предлагал ничего ставить прямо из cargo, у нас тут убунта завозит свои родные пакеты, которые она соберёт и дополнительно ещё проверит.

neumond
()
Ответ на: комментарий от gaylord

Это маловероятно.

Вот на этом потужно и коряво сформулированном «аргументе» и держится весь миф о безопасности раста. :)

Молодцы! Продолжайте в том же духе!

Stanson ★★★★★
()
Ответ на: комментарий от BceM_IIpuBeT

SSE/AVX это не только микрокод, а ускорение идет за счет паралельной работы над пачкой данных. Два значения для диапазона на пачку данных не тянут, зато возникают проблемы описанные на Wikipedia, когда языкам трудно адаптировать языковую модель памяти под предоставленные инструкции.

Микрокодированные fcos/fsin кстати довольно тормозные, намного быстрее работает реализация с нуля из glibc.

Как из аппаратного bound можно что то выжать? Лучшие эффекты которые он может предоставить, это подкинуть дополнительных регистров, и предоставить короткую инструкцию, но как я сказал, компилятор может во многих местах просто не вставлять эти инструкции, а там где они будут, они в любом случае не влияют на производительность, даже в цикле благодаря предсказанию они не должны оказывать заметного эффекта.

Еще больше эффект теряется, когда приходит понимание что все равно придется тратить инструкции на загрузку в bound-регистры, а вместо этого можно было бы вызвать cmp.

MOPKOBKA ★★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от Stanson

Святая простота. А что мешает абсолютно то же самое сделать с сишным кодом? В него мейнтейнер дистра как-то особенно смотрит, с пристрастием?

neumond
()
Ответ на: комментарий от LightDiver

его изначально проектировали более стандартизированно

И при этом у него нет стандартов.

u5er ★★★
()
Ответ на: комментарий от neumond

Есть публичные результаты аудита крейтов:

Растаманы аудитируют самих себя. :) :) :)

Это восхитительно, ящетаю. :)

Даже если сделать вид что купился на эту лютую порнографию - кто мешает владельцам crates.io отдавать протрояненый крейт только конкретным IP, например, а «публичным аудиторам» отдавать «чистый» вариант?

Stanson ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Около 200 штук, но там много интеграции с С кодом.

Значит и смысл существования этого sudo-rs - стремится к 0.

DrRulez ★★★★★
()
Ответ на: комментарий от Stanson

Вот на этом потужно и коряво сформулированном «аргументе» и держится весь миф о безопасности раста. :)

Как и любых других репозиториев. Включая репозиторий Debian, куда попал взломанный xz.

gaylord
()
Последнее исправление: gaylord (всего исправлений: 1)
Ответ на: комментарий от SurpriseCat

Местные сишники устроили клоунаду, как обычно. Будто способны на что-то большее

Ну, например, сишники способны написать свои утилиты, а не только переписывать чужие)

pihter ★★★★★
()
Ответ на: комментарий от neumond

Тем не менее я не предлагал ничего ставить прямо из cargo, у нас тут убунта завозит свои родные пакеты, которые она соберёт и дополнительно ещё проверит.

Так же, как они проверили апдейт с 24.10 на 25.04 ? :) Спасибо - не надо.

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

DrRulez ★★★★★
()
Ответ на: комментарий от LightDiver

Просто нужно всю инфраструктуру переписать на раст и будет всем счастье без ансейф.

Lets GO my friend ! Lets GO !!!! :)

DrRulez ★★★★★
()
Ответ на: комментарий от skywarp

надеюсь

Если бы кто-то хотел, то поддерживал. Уже все форумы исписали с «куда же уходит Xorg», и только 1 чел (одна штука) начал делать крупные контрибьюшны туда.

ac130kz ★★
()
Ответ на: комментарий от neumond

А что мешает абсолютно то же самое сделать с сишным кодом? В него мейнтейнер дистра как-то особенно смотрит, с пристрастием?

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

В случае с меинтейнером растоподелия, он вообще не обязан смотреть код всех крейтов которые используются при сборке поделия. В самом лучшем случае - только в код самого поделия, да и то, зачем ему это делать - раст же безопасен же. И если троян прилетит при сборке в каком-либо из крейтов, то «никто не виноват», «так получилось» и прочее «а нас защо».

Безопасность без ответственности - вообще ни разу не безопасность априори.

Stanson ★★★★★
()

разработана Trifecta Tech Foundation

Это та самая, которая рекламировалась вот тут: https://habr.com/ru/articles/789550/ и ссылку на которую давала AI-перделка вот тут: Начались разговоры об удалении поддержки архитектуры процессоров i486 в ядре Linux (комментарий)

Так это серьёзная контора, или какая-то хрень, которую AIшки по-всюду впаривают?

anonmyous ★★
()

Ну теперь заживём.

yvv1
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.
Тема будет перемещена в архив .