В ежедневно обновляемых экспериментальных сборках Ubuntu, отражающих развитие осеннего выпуска Ubuntu 25.10, вместо утилиты sudo по умолчанию задействован проект sudo-rs, написанный на языке Rust...Подробнее: https://www.opennet.me/opennews/art.shtml?num=63779
+10000000000 к безопасности против rce и lpe.
Это стадия торга. Когда они примут неизбежное, они заменят это на doas.
не runas ?
Заменять нужно на https://github.com/LeChatP/RootAsRole
Придумали ещё винду какую-то.
Квадратные колеса, лучшая альтернатива круглым.Не просто Квадратные.
Нет не так.Ведь это просто какой то root.
А это... RootAsRule!)
Эмм, да)
Голосом обьявляющим участников в рестлинге.
не заменят конечно. Там какое-то НКО заплатило уважаемым людям кучу денег за переписывание судо на раст, ты же не хочешь их разочаровать?
run0. Системда должна быть везде.
Поттеринг написал для них run0 - пользуйтесь. Не хотим, хотим SUID!
понял, еще одно слово в копилку _никогда_
На doass.
> Для возвращения классического sudo в Ubuntu-установках...следует использовать команду "update-alternatives --set sudo /usr/bin/sudo.cve".
Ух.
Может еще и mount, какой то особенный.
Ubuntu, то был нетакусиком.
А теперь он нетакусик нетакусик.
Как вариант - toybox из андройд, у этих тоже свои веплосипеды, и mount есть.
> toybox из андройд, у этих тоже свои веплосипеды, и mount есть.Есть анекдот про мена, один ставил Linux, всю ночь.
Второй поставил Винду и зажил.
>успеют ли разработчики реализовать в sudo-rs необходимые отсутствующие возможностиК чему такая спешка? Спешка как-раз приводит к ошибкам.
сроки окупаемости не резиновые
В 25.10 - логично, нужно обкатывать и тестировать на желающих.Но 26.10 в безальтернативном варианте тут при чем?
Где гарантии, что за время обкатки в 25.10 и 26.04 будут выявлены наиболее критичные ошибки и уязвимости?
Там только на интеграции с PAM через C ABI может обнаружиться целый ворох граблей, которые давно обойдены в древнем sudo. Это даже не рассматривая возможные ошибки и уязвимости в новом коде.
> C ABI может обнаружиться целый ворох граблей, которые давно обойдены в древнем sudoКлассика сишников - натыкать граблей, а потом героически их обходить.
Классика токсичного сообщества Rust - обвинять во всех грехах C, но при этом упорно пользоваться при динамическом связывании исключительно C ABI )))
у них нет выбора так как иначе модель памяти Rust не работает там
> у них нет выбора так как иначе модель памяти Rust не работает
> тамСкорее они не хотят стандартизировать ABI c поддержкой RTTI, что полностью решает эту проблему, на примере Itanium ABI.
> примере Itanium ABI.А хуже примера нельзя было найти? Вы для чего-то всерьёз ЭТО использовали?
При переносе сервисов с Windows, активно использующих COM, на Linux под k8s, выбор был невелик. Либо D-Bus, либо Itanium. Вы знаете иные альтернативы?
> Там только на интеграции с PAM через C ABI ...
> Классика токсичного сообщества Rust - обвинять во всех грехах C, но при этом упорно пользоваться при динамическом связывании исключительно C ABI )))Классика токсичного сообщества Си - безосновательно обвинять сообщество Rust в токсичности.
libpam - сишная библиотека, как ты собрался с ней работать без C ABI?
Даже если бы Rust сообщество предоставило ей замену, там всё равно осталось бы C ABI, так как ничего другого Rust предложить до сих пор не может.
> Даже если бы Rust сообщество предоставило ей замену, там всё равно осталось
> бы C ABI, так как ничего другого Rust предложить до сих
> пор не может.А зачем? Всех безопасных примитивов ты в abi не опишешь, так пускай и остаётся то, которое хотя бы работает
Поверх C ABI при желании делаются безопасные обёртки без проблем
То что Вы не знаете о существовании RTTI, еще не значит, что его не существует.
А написание множества несовместимых друг с другом костылей уж никак не может способствовать распространению Rust.
Несовместимы с чем либо ещё это как раз RTTIБезопасная обёртка поверх PAM реализуется очень просто, там публичное апи - пять функций, у всех этих функций есть контракты
Что модуль писать - безопасная обёртка может принимать аргументы из сей и превращать их в Rust типы, что пользователя pam - принимаешь Rust типы и указатели на них правильно передаёшь extern "C" функции
Если вдруг где-то оно обосралось - значит одна из сторон не соблюла контракт
И RTTI тут никак не поможет, лишь добавит поверхность атаки, потому что в RTTI библиотеки могут соврать, да и в Rust система типов намного сложнее чем то, для чего RTTI придумывали
> Несовместимы с чем либо ещё это как раз RTTIДо тех пор, пока его нет в стандарте - само собой )))
> принимаешь Rust типы и указатели
Вы из будущего? Сейчас для этого необходимо, чтобы вызывающая программа и динамически загружаемая библиотека были скомпилированы одной и той же версией Rust с одними и тем же версиями всех крейтов. В противном случае, даже указатель на обычную структуру не получится передать, так как правило размещения её компонентов в памяти в Rust не стандартизировано. Я уже молчу об enum, где идентификаторы типов могут даже при использовании одной и той же версии rustc изменяться совершенно произвольным образом.
Именно поэтому, например, в том же Redox, через C ABI передаются исключительно C типы данных и C структуры.> Безопасная обёртка поверх PAM
Вы о чём вообще? Или Вы даже не можете себе представить, что можно уйти от костылей, причем разных для каждого случая?
> в Rust система типов намного сложнее чем то, для чего RTTI придумывали
Похоже, Ваши знания не только поверхностны, но ещё и ограничиваются только Rust и С. Поинтересуйтесь RTTI в C++, C# и т.п. В том числе с учетом того, насколько ООП усложняет систему типов.
>> принимаешь Rust типы и указатели
> Вы из будущего? Сейчас для этого необходимо, чтобы вызывающая программа и динамически
> загружаемая библиотека были скомпилированы одной и той же версией RustЯ про обёртку говорю
extern "C" {
/// Имеем небезопасную функцию с известным контрактом
unsafe fn something(str: *const c_char, strlen: c_int)
}/// Доносим этот контракт до компилятора Rust, получаем безопасную функцию
fn something_wrapper(str: &str) {
unsafe { something(str.as_ptr(), str.len()) }
}> В противном случае, даже
> указатель на обычную структуру не получится передать, так как правило размещения
> её компонентов в памяти в Rust не стандартизировано....До тех пор пока ты явно не обозначишь структуру #[repr(C)]
> Я уже молчу
> об enum, где идентификаторы типов могут даже при использовании одной и
> той же версии rustc изменяться совершенно произвольным образом.Опять же #[repr(C)] и явное указание дискриминаторов
> Именно поэтому, например, в том же Redox, через C ABI передаются исключительно
> C типы данных и C структуры.Но речь была не об этом опять же, я же сказал про обёртку
>> Безопасная обёртка поверх PAM
> Вы о чём вообще? Или Вы даже не можете себе представить, что
> можно уйти от костылей, причем разных для каждого случая?Как мы уйдём от костылей когда речь идёт о сишной библиотеке и биндинги к ней?)
Писать pam-rs, в котором отказываться от поддержки всех существующих pam модулей? И кому это надо?> Поинтересуйтесь RTTI в C++
Который давно хотят сломать, потому что оно криво работает даже с самими плюсами, смотри разницу между передачей unique_ptr<T> и *T
> C# и т.п.
Смешались в кучу кони, люди, managed и unmanaged языки. Эх, вот бы везде RTTI из жаваскрипта
> В том
> числе с учетом того, насколько ООП усложняет систему типов.ООП упрощает систему типов, вместо системы типов у тебя появляются vtable, RTTI и куча всего уходит в рантайм
Но его можно написать и на bash? ;)
# Простити не думаю, пиво и лень)
Можно и на brainfuck'е. Было бы желание. :)
И сусликд почему-то не трогают. Хотя должны были бы в первую очередь.
тогда IBM аннигилирует сам с собой
> И сусликд почему-то не трогают. Хотя должны были бы в первую очередь.Начинать нужно с малого. С мелких утилиток uutils/coreutils, потом чуть более интегрированное с системой sudo-rs, а там может и systemd-rs появится.
Но как уже тут заметили, благодаря этому можно постепенно вычищать гнурак из системы и заменять на настоящие свободные лицензии.
А я вообще все это sudo вынес нахрен. Надоели вечными дырами с какими там visudoedit или как там его.
> А я вообще все это sudo вынес нахрен.Я тоже когда-то пытался без него обойтись. Вот только, как выяснилось, различные установщики без него работать отказывались. Например, от Canon.
На десктопе все эти судо не упали. Лучше бы написали чего самобытного на ржавчине, чтобы была причина её использовать. Пока только проблемы с тулчейнами добавляют куда её ни приносят.
С тулчейнами и карго. Карго абсолютно проклят.
В коде sudo-rs встречаются две лицензии: Apache 2.0 и MIT. Постепенное выдавливание GNU/GPL экосистемы куда интереснее языка реализации или нехватки (обскурных) фич. Но опеннет будет всё равно упорно смотреть на палец.
Отличная новость! Один из самых популярных дистрибутивов выбирает безопасность.Растификация линукса идет полным ходом и сразу с нескольких направлений.
Пока что занимают ключевые позиции и в ближайшее время (26.04) старые дырявые утилиты вначале вытеснят в отдельный загончик, а потом в пeтyшиный угол, где им и место.Ну и заодно показывает, что сообщество™ тявкает, а караван идет.
> Отличная новость! Один из самых популярных дистрибутивов выбирает безопасность.При этом его доля падает с нарастанием скорости.
По крайней мере по статистике steam.
> По крайней мере по статистике steam.Статистика стима, мягко говоря, крайне специфична.
Куда завезут последний дрова/вайн - туда игруны и бегут.А убунта - один из немногих дистров, которые поставляются с ноутами и готовыми компами.
Что вполне себе показатель доверия производителей.
Основной источник финансирования развития Linux и его дистрибутивов вовсе не SOHO, а Enterprise. А на серверах позиции Ubuntu не радуют. Там куда более консервативный подход.
> не SOHO, а Enterprise.https://www.dell.com/en-us/shop/desktop-computers/precision-...
Это еще SOHO или уже ынтырпрайз)?> А на серверах позиции Ubuntu не радуют.
А статистика есть?
Во-первых, явно не сервер. Во-вторых, статистику можете собрать, например, по docker hub.
> А на серверах позиции Ubuntu не радуют.Пруфы предоставите? Или "там где я работаю нет убунты"?
Те же Dell и Supermicro официально поддерживают Ubuntu Server LTS.
Fujitsu и HPE... да, они более консервативные.Но Убунта даже в топ500 умудрилась попасть. А сколько виртуалок с убунтой крутятся, так вообще не счесть. Так что не все у них плохо. В том числе и по части финансов.
Но в любом случае, пусто это не самый ынтарпрайзный дистр, но это и не васяноподение с дистровоча.
Вы сами предложили посчитать по ТОП-500. И какой процент там Ubuntu? А какой процент контейнеров на docker hub с Ubuntu?
Ни одной убунты в продакшне нет, поэтому мало волнует.
Ноуты, готовые компьютеры, суперкомпьютеры из топ500...
Если на твоем локалхосте нет убунты, не значит что у других тоже)
Вот по этому и нужно пилить альтернативные дистрибы.
казалось бы, делайте редох, но нет.. редох не получился, лезем в линь.
> Вот по этому и нужно пилить альтернативные дистрибы.Вы только и делаете, что пилите альтернативные дистры! Весь дистровоч заcpaли.
Может попробуете что-то полезное запилить?