LINUX.ORG.RU

В Rust Coreutils выявлено 113 уязвимостей. В Ubuntu 26.04 возвращены cp, mv и rm из GNU Coreutils

 , ,


1

5

Компания Canonical опубликовала предварительные итоги внешнего аудита безопасности инструментария uutils coreutils (Rust Coreutils), написанного на языке Rust и частично применяемого в Ubuntu вместо пакета GNU Coreutils. Аудит был выполнен компанией Zellic, имеющей опыт анализа уязвимостей в проектах на языке Rust. В ходе проверки было выявлено 113 проблем с безопасностью.

В настоящее время уже доступен отчёт с результатами первого этапа аудита, охватывающего наиболее важные утилиты из набора uutils. На первом этапе, который был проведён с декабря 2025 по январь 2026 года, было выявлено 73 уязвимости, из которых 7 отмечены как критические, 11 - опасные, 29 - средней опасности и 26 - неопасные.

Информация о всех выявленных проблемах уже передана разработчикам uutils и большая часть уязвимостей была устранена в выпусках uutils 0.5-0.8 без лишней огласки.

Пакет rust-coreutils был включён по умолчанию в осеннем выпуске Ubuntu 25.10, но с учётом выявленных в ходе аудита проблем в LTS-ветке Ubuntu 26.04 возвращены утилиты cp, mv и rm из набора GNU Coreutils. Отмечается, что по состоянию на 22 апреля в данных утилитах остаётся не исправлено 8 известных состояний гонки. Остальные утилиты задействованы из выпуска rust-coreutils 0.8.0. В Ubuntu 26.10 разработчики намерены полностью перейти на rust-coreutils.

Уязвимости в системных утилитах опасны тем, что они используется в скриптах, запускаемых с правами root. Например, устранённая в выпуске uutils coreutils 0.3.0 уязвимость в утилите rm могла быть эксплуатирована при ежедневном запуске из cron скрипта /etc/cron.daily/apport, который выполняется с правами root и рекурсивно удаляет содержимое каталога /var/crash, доступного на запись всем пользователям в системе.

Среди уязвимостей, помеченных в первом отчёте критическими:

  • Уязвимость в утилите chroot, вызванная обработкой опции --userspec после вызова chroot(), но до сброса привилегий. На системах с glibc резолвинг имён через функцию getpwnam() приводит к чтению файла /etc/nsswitch.conf, применяемого в NSS (Name Service Switch), и динамической загрузке указанных в нём библиотек с модулями NSS (libnss_*.so.2). Так как до обработки NSS выполяется вызов chroot() файл /etc/nsswitch.conf загружается относительно нового корня, но NSS-библиотеки загружаются до сброса привилегий. Если пользователь имеет доступ на запись к новому корню, то он может подставить свои NSS-библиотеки и добиться выполнения кода с правами root.
  • Изменение прав доступа к файлу после сбоя создания именованного канала (FIFO) утилитой mkfifo - если указать в качестве аргумента существующий файл, то mkfifo вернёт ошибку, но при этом аварийно не завершит работу, а выполнит вызов set_permissions() и изменит права доступа к существующему файлу. С учётом umask 022 уязвимость позволяет поменять права доступа к файлу на 644 (rw-r-r-) и получить доступ к файлам, для которых не было разрешено чтение.
  • Обход ограничений --preserve-root в утилите chmod, запрещающих выполнение рекурсивных операций относительно корня ФС. Уязвимость (CVE-2026-35338) вызвана тем, что в коде проверялось только точное совпадение пути с / и не выполнялась канонизация файлового пути. Для обхода проверки достаточно использовать путь вида /../ или символическую ссылку на корень. Уязвимость опасна тем, что при возможности подставить свой путь в системный скрипт вызывающий команду chmod, можно добиться рекурсивного изменения прав доступа для всех файлов в ФС.
  • В утилите rm допускалась обработка любых сокращений опции --no-preserve-root (--n, --no, --no-p, --no-pres и т.п.) для отключения защиты от выполнение рекурсивной операции с корнем (например, можно указать rm -rf --n / и удалить по ошибке все данные. В GNU Coreutils подобные сокращённые опции запрещены.
  • Обход ограничений --preserve-root в утилите rm, запрещающих выполнение рекурсивных операций относительно корня ФС, через подстановку символической ссылки на «/».
  • Отсутствие полноценной защиты от указания каталогов, начинающихся с точки. Например, при выполнении rm -rf . утилита выведет ошибку, но при указании rm -rf ./ или rm -rf ./// молча удалит текущий каталог.
  • Ошибка в коде разбора аргументов утилиты kill позволяет отправить сигнал всем процессам в системе при указании идентификатора процесса -1 (kill -1).

>>> Источник

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Ты молодец. А он, с парой лет опыта пытающийся тут что-то кому-то доказывать, – нет.

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

Так называемые «косяки Си», это не косяки языка, а косяки криворуких недовыпоротых горе-прогреммеров, которым дали язык программирования, который делает ровно то, что программист написал.

При этом создали такой «удобный» синтаксис и концепт основных данных типа многомерных массивов, чтобы порограммисты потратили годы на его изучение и понимание, но все равно забывали тонкие моменты, чтобы в очередной раз накосячить.

Прекрасный подход.

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

Си хотя бы умеет памятью управлять:

  • в одном месте написал malloc,
  • в другом free и всё работает

а в Rust надо в каждой строке об этом думать, и всё равно, компилятор не будет счастливым

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

Там же гвоздями все прибито.

иными словами - отсутсвует зоопарк с макаками, пригающими по вольеру с гранатами. как по мне - это плюс.

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

Я просто хотел бы чуть раскрытия темы - о чем именно нужно постоянно думать в расте.

Судя по всем имеющимся в публичном доступе результатам творчества люборастов, думать при написании кода на расте вообще не принято. :)

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

Ну ты можешь посмотреть общение тут на форуме между профессионалами.

Нас тут много умных и у каждого - свое мнение ! :)

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

Нет, я посчитал Codemirror на JS, который составляет большую часть Lekhas.

Так он отдельный проект. Если брать всё, что используется, тогда надо ещё Gtk на Си приплюсовать, там строк ещё больше будет.

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

эта проблема (0 оконеченных) - легко решаемая при желании, ИЧСХ, даже механизмы в С уже давно завезли, чуть ли не с самого начала.

Строковые константы всё равно нуль-теринированные. Вся стандартная либа и системные вызовы нуль-терминированные — ты вынужден постоянно делать преобразования строк.

но причину почему было сделано именно так - я вам легко объясню.
это связано с простотой и быстротой обработки основных действий со строками (не всех). что хорошо подходило под те реалии.

Объяснение простое, понятное, и неправильное. Нуль-терминированные строки были в асме того времени, фронтендом к которому был Си. Вот и всё, никаких мук выбора K&R не испытывали, херак-херак — и в продакшен. Ни один ЯП того времени больше таких строк не использовал — они использовали либо фиксированные буфера (кобол, фортран), либо длина строки была встроена в язык (пацкаль, васик).

varchar(255) в SQL ни на какие мысли не наводит?

Давным давно уже не 255 же ж. Если в паскале длина строких хранилась по нулевому индексу, то в васике длина строки скрыта в дескрипторе. Собственно, более новые AnsiString аналогично делаются (по факту длина хранится по отрицательному смещению).

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

в Rust надо в каждой строке об этом думать

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

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

Так в нем надо думать не как бы не выстрелить себе в ногу, а о проекте.

Ну-ну. И опять сраные сказки про «бИЗапАСтнаСтЬ», которой на самом деле нет, никогда не было, и не будет в расте. :)

ДУмать о проекте надо при написании оного на любом языке. Но вот только люборасты каким-то образом умудряются о проекте думать намного меньше чем о том, что раст «БиЗАпаСтнЫй». В итоге даже в сраных и никому кроме люборастов не нужных копиях давно написанных простейших утилит имеем:

проверялось только точное совпадение пути с / и не выполнялась канонизация файлового пути.

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

Попросите ваших хозяев из Rust Evangelism Strike Force придумать уже какие-то другие методички. Использовать в качестве аргументов вещи в которых люборасты вообще ни в зуб ногой - идиотизм.

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

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

Си это дом без дверей. Заходи, воруй, гусей там пощипывай. Но если хочешь - поставь дверь. Ты долен сам об этом думать. И окна кстати тоже поставь. А еще ставни на окна. И крышу загерметизируй, а то течь будет. И и и. Думай все время и обо всем. Потом придет соседка, попросит соли и дом взорвется.

А в раст хотя бы двери есть с замком.

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

В Си есть, если ты их напишешь, удобные инструменты для чего угодно.

Что касается нуль-терминированных строк, то единственное, что у них в Си есть выделенное по сравнению с другими, так это строковые литералы, которые парсятся в массивы char с добавленным нулём на конце. Алгоритмический код же одинаково легко пишется для любого представления строк.

они медленее, например, при конкатенации

Совершенно нелепое высказывание. Если ты про strcat, то да, эта функция медленная. Но её и незачем использовать, она нужна исключительно для возможности лениво по-быстрому набросать простой алгоритм (при этом с большой вероятностью оставив потенциальное битьё памяти, но для прототипа можно временно забить).

Нормальную конкатенацию, разумеется, надо делать по-другому, причём в зависимости от того, какие у тебя обстоятельства, оптимальные алгоритмы конкатенации будут разными! Си, как всегда, даёт тебе возможность выбрать нужный и реализовать, ничего не навязывая. Я себе реализовал, например - конкатенацию в динамический (malloc/realloc) буфер, конкатенацию в статический буфер, конкатенацию в файл - в том виде, как удобно мне. (тут) Кому-то, возможно, удобен другой вид - он сделает себе по-своему. Си не ограничивает, и это его однозначное достоинство.

Ещё можно придумать конкатенацию через сегментированные строки, когда у тебя строка представлена не массивом байт, а ссылками на свои куски. При этом при конкатенации куска ссылка на него добавляется в конец представления строки, а у куска инкрементируется refcount. Такое я тоже кое-где использовал (для буферов сетевой отправки например), но это слишком специфичная к задаче штука и в библиотеку её не вынести.

Но закончим с конкатенацией и вернёмся к строкам. Лично я, когда пишу очередной парсер чего-нить, стою перед выбором - таскать везде лишние 4(8) байт длины, или же выделить один байт в конце буфера, записать туда ноль и использовать для детектирования конца строки его. Однозначного решения, какой из этих подходов лучше, у меня нет - оба удобные в зависимости от обстоятельств. Единственное, если в буфере допустимы нулевые байты в середине, вариант с ASCIIZ точно не годится, но это редкий случай.

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

Си это дом без дверей. Заходи, воруй, гусей там пощипывай. Но если хочешь - поставь дверь. Ты долен сам об этом думать.

А в раст хотя бы двери есть с замком.

Ты написал так, словно захотел сделать комплимент всем, кто пишет на Си. Там надо думать, а в раст - не надо :) По крайней мере - так это читается в твоем примере.

Хотя на самом деле думать стоит и там и там. думать, оно вообще - полезно :) просто, как я уже и говорил, на Си действительно, нужно самому забоиться о куче вещей - тут ты прав. Но это разумная плата за, по сути, низкоуровневое программирование не на ассемблере, а на удобочитаемом языке программирования. на том-же ассемблере надо думать и помнить - значительно больше.

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

Да понимаешь, я ж пишу то как я это вижу. Думать - неотъемлемое свойство всего живого в меру своих сил и опыта. Ну ладно, всего, у чего есть нейроны.

Ты в силу своего опыта в любом случае будешь думать, как сделать лучше. Но это именно в меру своего опыта. Хотя на раст, хоть на си.

И в раст ну хоть какие то удобства уже сть изначально. И эти удобства будут в раст хоть для профессионала, хоть для новичка.

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

И в раст ну хоть какие то удобства уже сть изначально. И эти удобства будут в раст хоть для профессионала, хоть для новичка.

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

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

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

Ты прям повторяешь мои мысли про паузу. Да и в целом.

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

Но когда то же его допилят и модули допилят. Подождем, посмотрим.

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

И в раст ну хоть какие то удобства уже сть изначально.

ООП и исключения.

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

Ну ходить строем в одну шеренгу тоже выбор, что уж

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

любые крупные проекты пишутся более чем одним человеком

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

Описанная же тобой ситуация иная. Крупный проект на несколько+ человек должен сопровождаться проектной документацией и комментариями. Не надо делать вид, что оные крупные проекты появились только сейчас, и озвученные проблемы с пониманием кода - это что-то новое.

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

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

Без набивания шишек на своем лбу, конечно, не обойтись, но эти книжки позволят сократить их до минимума. По крайней мере, ты не будешь изобретать композиционные велосипеды.

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

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

Какое отношение лицензия rustc имеет к выбору лицензии ПО, написанного на расте?

kaafree
()
Ответ на: комментарий от liksys

«Возможно, ваша главная проблема не в технологиях»

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

LightDiver ★★★★★
()
Ответ на: удаленный комментарий

Есть некоторый набор программ, который у сообщества все же получился отлично. Из кедовых поделий, например, очень хорошо работает Dolphin, Konsole+Yakuake и Krita. Раньше я еще пользовался Kopete, но хз что там с ним сейчас. qBittorrent еще радует - это вообще лучший клиент эвар.

Но почему-то нормальную смотрелку картинок никто родить не в состоянии: чтобы и файлы открывала, и метаданные посмотреть, что-то по мелочи модифицировать (повернуть, кропнуть), и чтобы не выглядела, как вырвиглазное говно.

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

Мне тут некоторые клоуны рассказывали, что чат, звонилка и шаринг файлов должны быть отдельными приложениями, потому что так религиозно-правильно. Тот факт, что конечные юзеры хотят УДОБНЫЕ комбинированные месседжеры, где ты можешь пошарить фотку кота, а потом сразу созвониться и обсудить ее - игнорируется.

А потом удивляются, почему сдох джаббер и все сидят в телеге, вацапе и дисосе. Да потому что никому не всралась эта куча протоколов с зоопарком клиентов, толком между собой не совместимых. У меня в жабере НИКОГДА не работала передача файлов, а про звонки уж я вообще молчу.

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

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

Хорошо, шары делать больше нельзя. А браузинг-то можно было сохранить? Вот я как пользователь открываю просмотр и вижу фигу (пустой список). Какой мне вывод сделать, что шар нету? Что шары недоступны? А можно просто, не знаю, написать там свою реализацию? Скомпилять только тот кусок кода, который нужен именно для дискавери? Да никогда в жизни конечный пользователь не будет разбираться, он просто скажет, что в линуксе сломан браузинг шар, и будет прав.

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

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

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

У меня в жабере НИКОГДА не работала передача файлов, а про звонки уж я вообще молчу.

У меня прямо сейчас прекрасно работают даже видеозвонки с пси+псимедия на NokiaN9 в котором ещё та древняя искаробочная telepathy в качестве джаббер-клиента и обратно. С передачей файлов, внезапно, тоже никогда никаких проблем не было.

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

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

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

У меня прямо сейчас прекрасно работают даже видеозвонки

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

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

они просто ставят телеграм, и у них всё работает из коробки.

А потом рвут волосы на жопе когда это всё сразу перестаёт работать.

И нет, они одновременно ставят и телеграм, и вацап, и даже вайбер с махом. Кучу разных программ для одной задачи. Именно потому что подсознательно понимают что всё это проприетарное говно - ненадёжно.

Ошибка выжившего.

Или просто руки не из жопы.

Плюс, сейчас что-то могло поменяться в лучшую сторону.

Сколько там лет Nokia N9?

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

Во-первых, пердолинг это как раз все эти централизованные мессенджеры. Куда там нынче пропали аська со скайпом, так когда-то популярные у этого массового пользователя? Ща вот вайбер дохнет и вацап. Телеграму тоже недолго осталось. Дуров уже на французов навыёживался, ща ему в Дубайск ещё от персов прилетит - и всё, кончится телеграм этот сраный.

Во-вторых, массовый пользователь вообще ничего не предпочитал. Его тупо заставили поставить всё это проприетарное говно, потому что внезпно оказывалось что с кем-то нужным можно связаться только по этому проприетарному говну. А ещё все как-то забыли про массовые рассылки СМСок с «Вася приглашает Вас в Whatsapp», всем, кто был у Васи в контактах, которые вацап утаскивал к себе как только Вася ставил себе вацап. Ну и про прочие гнусные способы затаскивания хомячков в сети проприетарной социальщины. А вот XMPP таким не занимался никогда. И он всё равно не сдох, как бы проприерастам не хотелось бы. Что, жабберу тоже надо было СМСками спамить, проплачивать свои иконки на сайтах и контакты воровать с телефонов?

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

И нет, они одновременно ставят и телеграм, и вацап, и даже вайбер с махом.

Попробуй умножить это количество на три для того, чтобы получить уровень пердолинга с опенсорсными решениями. Это несложно, правда.

Именно потому что подсознательно понимают что всё это проприетарное говно - ненадёжно.

Нет. Они ставят несколько, потому что разные социальные группы общаются в разных мессенджерах. У нас на Кипре все местные общаются в вацапе, это здесь стандарт де-факто. При этом русское коммьюнити целиком живет в телеграме. Для общения с англиками и греками ты идешь в один мессенджер, для русских - в другой.

Во-первых, пердолинг это как раз все эти централизованные мессенджеры.

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

Ща вот вайбер дохнет и вацап. Телеграму тоже недолго осталось.

Какие-то маняфантазии, далекие от реальности.

Его тупо заставили поставить всё это проприетарное говно

Нет. Именно в РФ телеграм все начали ставить, потому что людей доколебали проблемы с жабером. Я прекрасно помню, как всё это началось.

И он всё равно не сдох, как бы проприерастам не хотелось бы.

Увы, сдох. Потому что вместо ПРОТОКОЛА, надо было делать РЕШЕНИЕ: удобное, интегрированное, с одним хорошим клиентом под все платформы.

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

Попробуй умножить это количество на три для того, чтобы получить уровень пердолинга с опенсорсными решениями. Это несложно, правда.

Умножить на три мне несложно. Мне сложно понять где же мне увидеть тот самый «пердолинг с опенсорсными решениями».

Я вот вообще не могу припомнить какого-либо пердолинга с жаббером. Prosody накатывается и работает искаропки. Псиплюс, копыто, гаджим, жаббер в пиджине, телепатия на N9 тоже искаропки всегда работали.

Токс тоже никакого пердолинга не подразумевает.

А вот с чем был аццкий пердолинг - так это с вацапом, когда эти ублюдки начали войну с альтернативными клиентами. Ключи выковыряй из официального клиента, заковыряй в нормальный клиент, постучи в бубен, чтобы у них там в корпорации ничего не заподозрили, и т.п. Меня в вацапе за использование альтернативного в итоге и забанили.

В телеге мне вообще не удалось зарегистрироваться. 6 симок спалил во времена оные. Запускаю официальный клиент в наглухо огороженном контейнере, где клиент не видит на диске ничего кроме собственно файлов клиента. После регистрации, отправляю тестовое сообщение приятелю, состоящее из слова «test». Получаю сообщение о перманентном бане. И так 6 разных симок с разных ИП.

А вот в жаббере меня никто и никогда не банил, хотя я для него даже свой собственный микроклиент написал для роутеров.

И в токсе тоже никаких проблем не наблюдалось.

Так где пердолинг?

Для общения с англиками и греками ты идешь в один мессенджер, для русских - в другой.

Мда…

Нет. Именно в РФ телеграм все начали ставить, потому что людей доколебали проблемы с жабером. Я прекрасно помню, как всё это началось.

Какие ещё проблемы с жаббером?

Потому что вместо ПРОТОКОЛА, надо было делать РЕШЕНИЕ: удобное, интегрированное, с одним хорошим клиентом под все платформы.

Невозможно сделать один клиент под смартфон и десктоп сразу.

ЗЫ: Как так на Кипре-то нынче? Бабушки ходят, зиванию продают? Клефтико в ресторанах готовят? Улиток виноградных из сада жарят на закусь? Курить везде по-прежнему можно? Герань по канавам около дорог растёт? Фунты остались или их на евры заменили полностью? Свинина всё ещё по полфунта за кило? Я там уже лет 20 не был, если не больше, последний раз даже в забастовках фермеров против вступления в Евросоюз поучаствовал с приятелями местными, но, очевидно, это нифига не помогло. :)

Stanson ★★★★★
()
Ответ на: удаленный комментарий

Стабильная и предсказуемая работа системы со стандартными api и abi - против зоопарка. Что-же выбрать-то?

Ахахах, то-то часть юзеров боится обновляться как минимум до первого сервис пака! Это потому что стандарты и стабильность! Вы обновились и ваше приложение перестало работать? Это потому что приложение использовало депрекейтед апи, которое мы удалили! Разработчик давно забросил его и некому адаптировать под новую версию? Ну, это не наши проблемы.

Мы сделали новое классное железо. Ну и что что софт не совместим! В большинстве случаев разработчикам достаточно перекомпилировать приложение новым компилятором! Ваше приложение не входит в это большинство? У нас есть самый лучший эмулятор! Приложение под эмулятором работает слишком медленно? Обратитесь к разработчику чтобы выпустил версию под новое железо!

Доделанное прикладное программное обеспечение против конструктора

Ахахах! Мы сделали новый интерфейс в новой версии ос! Ну и что что вам не нравится! Жрите что дают! Это самое лучшее! Наши АБ тесты показали! Не все системные приложения и диалоги перевели на новый интерфейс? Ничего страшного, да, мы немного не успели к дате релиза, но скоро все будет в лучшем виде!

то. что хорошо, для серверов и встроек - не подходит для десктопа в данном случае

Так мак это и есть встройки по сути

ты стиральную машинку, или там утюг тоже покупаешь по отдельности

Ага. Утюг одного производителя, стиральная машинка другого, электрочайник третьего. Всё так

Это все можно охарактеризовать старым анекдотом: «после сборки - обработать напильником»

А в маке ты не можешь доработать его убожество. Чуть что так brew от того самого мифического сообщества

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

Код маленький вот и ориентирушься. А серьезные задачи с маленькой кодбазой не решить.

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

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

Я вот вообще не могу припомнить какого-либо пердолинга с жаббером.

Я тебе перечислил: файлы не передавались, звонки не звонились. Логи если и сохранялись, то были где-нибудь сбоку, и нельзя было просто прийти и почитать сообщения в конференции, которые были до тебя.

В телеге мне вообще не удалось зарегистрироваться.

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

Невозможно сделать один клиент под смартфон и десктоп сразу.

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

Как так на Кипре-то нынче?

Великолепно. Чисто, свежо, приветливые люди, хорошая еда.

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

нормальную смотрелку картинок никто родить не в состоянии: чтобы и файлы открывала, и метаданные посмотреть, что-то по мелочи модифицировать (повернуть, кропнуть), и чтобы не выглядела, как вырвиглазное говно

nomacs, oculante.

ChocoRobo
()

Расскажу историю. Делаю уже давно пет-проджект на C++/TypeSceipt, за это время он стал C++20. Бакенд на C++, клиент в браузере на TS. Бакенд состоит штук из 15 бинарников, написанных на C++, в веб-клиенте есть WASM-модуль на чистых сях. Так вот, когда это начиналось Rust особо не было. Но и потом на Rust переписывать ничего рука не поднималась по одной причине - он слишком сложно пытается решить банальные проблемы, решаемые иначе и проще. Например, взлом моего бинарника и RCE или получение root. Но мне проще запихать бинарник в отдельные user namespace, fs namespace и т.п. - пусть делают чо хотят, рута получают: всё равно в клетке без прав и рут не настоящий. Через seccomp например я ещё и системные вызовы некоторые запрещу. Через cgroups больше 440 мб памати не дам выделить и более 2 гб данных на диск положить - пусть течёт и за границы буферов ходит. Ну и так далее. Процессы сидят в тюрмах, совершенно пофиг что с ними делается, баги фиксить можно не спешить - нет смысла, починим когда надоест что процесс слишком часто дохнет и перезапускается.

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

Есть класс ошибок про память такого вида: данные одного юзера лежали в куске памяти, а ты хоба и будучи другим юзером получил возможность читать рандомные страницы процесса и сдампил пароли другого юзера. Ну тут и на Rust можно обосратсо на 10050 уровнях абстракции, забыть перезаписать uid поле в структуре с которой в БД пошел допустим и всё, бугага!

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

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

lesopilorama
()
Ответ на: комментарий от liksys

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

Наоборот, абсолютно чисто. Шарится клиент телеграма по диску, а там ничего кроме самого клиента нету. Я так понял банило именно потому что официальный клиент телеграма ничего не находил чтобы украсть.

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

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

Чисто,

Ну это да, глины там в почве мало, машину можно по полгода не мыть.

свежо,

Эмм.. Свежо там в январе-феврале же.

приветливые люди,

Да, культурно близкое население, такие же раздолбаи как и мы. Общий язык найти очень легко.

хорошая еда.

Ну вот тут могу поспорить, хотя на вкус и цвет…. Несомненно блюда зачётные есть, типа того же клефтико или жареного халуми, оливки правильно маринованые/засоленные опять же, но в общем и целом народная кипрская кухня средненькая такая. И с лимоном в блюдах частенько перебарщивают :)

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

Я так понял банило именно потому что официальный клиент телеграма ничего не находил чтобы украсть.

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

Ну так это будут разные программы, а не одна и та же.

С общей базой.

Ну это да, глины там в почве мало, машину можно по полгода не мыть.

Не правда. Африканская пылища никуда не девается.

Эмм.. Свежо там в январе-феврале же.

Про свежесть я имел в виду незагазованный воздух. Но в плане прохлады - всё еще свежо прямо сейчас. Погоды стоят аномально-комфортные.

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

Так он отдельный проект. Если брать всё, что используется, тогда надо ещё Gtk на Си приплюсовать, там строк ещё больше будет.

Ну да. Там этой «IDE» всего-ничего, несколько кнопочек-окошечек на GTK, написанных поверх CodeMirror. Называть это IDE - преувеличение. Так-то Gedit, Geany, и Notepad++ — тоже IDE.

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

В Си есть, если ты их напишешь, удобные инструменты для чего угодно.

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

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

Описанная же тобой ситуация иная. Крупный проект на несколько+ человек должен сопровождаться проектной документацией и комментариями.

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

byko3y ★★★★★
()

В Rust Coreutils выявлено 113 уязвимостей

Да быть такого не может!.. Это происки врагов!!!.. ;P ;)

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

«Я слышал, что большие дяди пишут код по-серьёзному» — это отличная история

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

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

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

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

Дай комьюнити волю — они такой зоопарк сделают, что ты в жизни не сможешь чужой бинарь запустить у себя. Это было фактическое состояние никсов начала нулевых годов, я ничего не придумываю.

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

Сколько лет нужно было, чтобы довести до сообщества банальный факт — иксы нужно выкинуть на помойку? Какое DE они собрались делать, если любое приложение в иксах может прочитать пароль пользователя или даже рута?

Один только вариантов DE - черт-те сколько, стабильных интерефесов - нет. единственное, что смогли стандартизировать - это systemd.

Есть огромная проблема с тем, что старички и косплееры онных не могут осилить ЯП, отличные от Си. Писать кнопочки на Си о-очень тяжело — я сам ещё в 2008 на GSoC говна поел знатно, выступая за GNOME. Когда вместо логики тебе каждый раз нужно следить за тем, чтобы у тебя не запутались шнурки и ты не упал — это чудовищно замедляет разработку. Причём, это замедление не даёт никаких преимуществ взамен.

У меня нет решения сей проблемы, более того, как я уже упомянул, никакое сообщество эту проблему никогда не решит. Ждём, пока какая-нибудь корпорация не стандартизирует это дело (хотя xdg и systemd уже много что сделали).

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

Но если можно сделать что-то чтобы таким как ты стало хуже - непременно дай знать.

Клонируй себя многократно а биореакторе, мне точн не полегчает.

Set440 ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.