The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Уязвимости в утилите sudo, позволяющие получить права root в системе"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Уязвимости в утилите sudo, позволяющие получить права root в системе"  +/
Сообщение от opennews (??), 01-Июл-25, 12:11 
В пакете sudo, применяемом для организации выполнения команд от имени других пользователей, выявлена уязвимость (CVE-2025-32463), позволяющая любому непривилегированному пользователю выполнить код с правами root, даже если пользователь не упомянут в конфигурации sudoers. Проблеме подвержены дистрибутивы, использующие файл конфигурации /etc/nsswitch.conf, например, возможность эксплуатации уязвимости продемонстрирована в Ubuntu 24.04 и Fedora 41...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63505

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 01-Июл-25, 12:11   –30 +/
04/01/2025: Vulnerability report sent to Todd Miller (Sudo maintainer).

07.05.2025 В Ubuntu 25.10 решено задействовать аналог sudo, написанный на Rust https://opennet.ru/63197-ubuntu

В Ubuntu оказывается неспроста начали менять sudo на  sudo-rs.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #3, #4, #7, #12, #14, #16, #65, #118, #214

2. Сообщение от Ананимус (?), 01-Июл-25, 12:12   +9 +/
Я начинаю видеть некоторую мудрость людей из OpenBSD, породивших doas.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #9, #89, #221

3. Сообщение от Аноним (3), 01-Июл-25, 12:13   –14 +/
В целом логичный шаг после замены дыряшечных coreutils, но да, забавно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

4. Сообщение от Anon62513512124 (?), 01-Июл-25, 12:15   +45 +/
Мудро то оно может и да, но похоже что этот вид багов вполне можно и на rust допустить
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #18, #127

5. Сообщение от Аноним (5), 01-Июл-25, 12:17   +10 +/
Это настолько феерично, что я никогда в жизни не поверю, что это не закладка.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #26, #34, #71, #121, #140

6. Сообщение от birdie (ok), 01-Июл-25, 12:17   +4 +/
Уязвимость - жуть.

Только что проверил полностью пропатченную Fedora 42:

./pown.sh
woot!
[root@zen /]# id
uid=0(root) gid=0(root) groups=0(root),39(video),63(audio),1010(testuser) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

Жаль, нет такой для Android.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #10, #17

7. Сообщение от IdeaFix (ok), 01-Июл-25, 12:23   +/
Тут программист не в звездочках заблудился а в слешах. Это пофиксят в NGR (NextGenRust), пока же раст как обычно бессилен. Программист победил.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

8. Сообщение от Аноним (10), 01-Июл-25, 12:25   +1 +/
Сколько не обновляйся все равно пользователя, извиняюсь за выражение, отымеют
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #179

9. Сообщение от IMBird (ok), 01-Июл-25, 12:25   +12 +/
Да, doas рулит, а для рядовых задач и вовсе хватает su.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #155

10. Сообщение от Аноним (10), 01-Июл-25, 12:29   +/
Любая админ утилита вообще это шкатулка-разгадайка. Можно напхать туда "ребусов" как такой условный пароль до рут данной утилиты и эксплуатировать для себя.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6

12. Сообщение от Аноним (12), 01-Июл-25, 12:37   +/
А как это поможет если sudo-rs такой же комбайн как sudo?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #33, #58

14. Сообщение от Аноним (14), 01-Июл-25, 12:46   +1 +/
Одно с другим не связано. Здесь логическая ошибка. Rust никаким образом здесь не помог бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

15. Сообщение от Аноним (-), 01-Июл-25, 12:46   –3 +/
> позволяющая любому непривилегированному пользователю выполнить код с правами root

Ты должен был бороться со злом, а не примкнуть к нему!..  (c)
Впрочем ничего нового)
В ляликсе уже сколько утилит и разных способов, а вот и ныне тем.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24

16. Сообщение от Andrey (??), 01-Июл-25, 12:47   –1 +/
Этот баг вызван не ошибкой в работе с памятью. Тут rust никак не помог бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

17. Сообщение от Аноним (17), 01-Июл-25, 12:50   –4 +/
>./pown.sh
>woot!
>[root@zen /]# id

Я так понимаю, что root создается внутри чрута woot, в котором (сюрприз!) необходимо иметь права записи и удаления. Т.е. для поднятия привелегий требуется уже иметь их.
Как обычно очередной академический "сферический конь".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #21, #53, #151, #254

18. Сообщение от Alexey (??), 01-Июл-25, 12:53   +36 +/
Да, тут никаких переполнений буфера, use-after-free итп нет, ошибка логическая, никакой язык программирования от этого не спасёт
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #31, #43, #169, #194

21. Сообщение от User (??), 01-Июл-25, 13:00   +4 +/
"Но в песне не понял ты, увы, ни...чего"(С)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #38

22. Сообщение от Аноним (22), 01-Июл-25, 13:01   +3 +/
/etc/os-release:VERSION="24.04.2 LTS (Noble Numbat)"
sudo           1.9.15p5-3ubuntu5.24.04.1 amd64

...
sudo: you are not permitted to use the -R option with woot
...

сп#здели

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #225

24. Сообщение от Аноним (10), 01-Июл-25, 13:06   +1 +/
Есть примеры, где через подобные "уязвимости" своровали данные/навредили инфраструктуре.

Не в сферическом вакууме это все не работает. Т.е. в реальном мире никто не будет локально прописывать ребусы, чтобы завладеть своим же серваком))

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

Т.е. те же облачные сервисы это удаленная ОС. А на локальный корень Вашего ПК им абсолютно равнодушно.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15 Ответы: #67

26. Сообщение от asd (??), 01-Июл-25, 13:12   +3 +/
Поражает воображение, насколько ВСЁ дырявое..
Так что согласен про закладки. Иначе, нужно быть полными лохами, чтобы за столько десятилетий не закрыть их все, раз уж пишешь этот софт с умным.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

27. Сообщение от ё (?), 01-Июл-25, 13:15   +1 +/
Так я не понял, если пользователя упомянуть в sudoers то он и так получает root. А без упоминания sudo, из под этого пользователя, запустить не получится?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #30, #108

29. Сообщение от Fracta1L (ok), 01-Июл-25, 13:21   +1 +/
А в sudo-rs есть такая уязвимость?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #55, #109

30. Сообщение от Владимир (??), 01-Июл-25, 13:31   +/
Нет. Он может быть упомянут в sudoers для выполнения одной единственной команды, а не для root доступа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

31. Сообщение от Аноним (31), 01-Июл-25, 13:37   –13 +/
Сишники выдохнули с облегчением: наконец-то уязвимость, которая не вызвана некорректной работой с памятью! И раст объявляется автоматически плохим, потому что "именно от этой уязвимости бы не спас". Вот такой вот полет сишной мысли.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #35, #187

32. Сообщение от Аноним (32), 01-Июл-25, 13:40   +/
а как там run0 поживает?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40, #73

33. Сообщение от Аноним (33), 01-Июл-25, 13:44   –1 +/
Но безопасТный комбайн.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

34. Сообщение от fidoman (ok), 01-Июл-25, 13:46   +/
Не факт. Это скорее следствие так называемой "bazaar" методологии разработки. Вместо того, чтобы пользоваться системными либами, оно само тупо лезет в этот файл. А поскольку это, как водится, делается "напролом" - вот и косяки прут косяками.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #74

35. Сообщение от Aliech (ok), 01-Июл-25, 13:50   +19 +/
Комментатор на opennet пишет:

>  Да, тут никаких переполнений буфера, use-after-free итп нет, ошибка логическая, никакой язык программирования от этого не спасёт

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

> Сишники выдохнули с облегчением: наконец-то уязвимость, которая не вызвана некорректной работой с памятью! И раст объявляется автоматически плохим, потому что "именно от этой уязвимости бы не спас". Вот такой вот полет сишной мысли.

Анон совсем не сектант, видящий везде атаку на своё божество, единственно верный ЯП rust, да... Не сектант!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31 Ответы: #116, #148, #168, #172

36. Сообщение от Аноним (36), 01-Июл-25, 13:50   +/
Жесть, детская уязвимость которую может эксплойтнуть любой школьник и поставляется со всеми серверами мира. Расчехлили еще один бэкдор красношляпы.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #63, #112

37. Сообщение от Аноним (-), 01-Июл-25, 13:51   +/
Не первая ошибка, только... никто от sudo не отказался после прошлой ошибки. Как-то не удобно. До сих пор есть множество сценариев и рекомендаций использовать sudo вместо su. И я пока особо не видел где-то сценариев для настройки/установки чего-либо где бы sudo заменили на run0 или sudo-rs. Впрочем алиас никогда не поздно сделать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91, #113, #134

38. Сообщение от Аноним (17), 01-Июл-25, 13:53   +/
А если все-таки попробовать включить голову и подумать (с)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #21 Ответы: #45

40. Сообщение от Аноним (33), 01-Июл-25, 14:15   +1 +/
Приближается к run1. А дальше синхронизация с нумерацией версий systemd.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

43. Сообщение от Аноним (43), 01-Июл-25, 14:27   –2 +/
Здесь использование юниксового легаси говна nsswitch, есть большая вероятность что в новом софте такая дрянь не будет поддерживаться и проблемы не будет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #150

44. Сообщение от Витюшка (?), 01-Июл-25, 14:35   +/
Да всем по...современный ИТ (любой, на любой ОС, хоть open-source, хоть корпоративный) это дырка на дырке. Нет времени думать, нужно делать фичи.

Однако есть и нормальные альтернативы - https://github.com/LeChatP/RootAsRole

RootAsRole. Ой, на Rust 😱😱😱

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #50, #80

45. Сообщение от User (??), 01-Июл-25, 14:44   +1 +/
"... да и было ли ему чем?"(С)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38

48. Сообщение от Аноним (48), 01-Июл-25, 15:06   +/
На первое время можно бинарник sudo удалить/спрятать.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #101

49. Сообщение от Аноним (-), 01-Июл-25, 15:14   +1 +/
> любому непривилегированному пользователю выполнить код с правами root,
> даже если пользователь не упомянут в конфигурации sudoers

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

Ответить | Правка | Наверх | Cообщить модератору

50. Сообщение от Аноним (50), 01-Июл-25, 15:14   +4 +/
Всего лишь следствие капитализма и корпоративизации отрасли. Изначально айти была академической, но слишком молодой, чтобы выработать лучшие практики. Сейчас же лучшие практики есть, но в угоду kpi и прочей дряни, что на качество кода забивают.
Иными словами, принцип неопределенности: либо медленно и качественно, либо быстро и плохо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #83

53. Сообщение от Аноним (53), 01-Июл-25, 15:21   +2 +/
chroot - это всё равно, что папку через cd сменить, он рута не изолирует от ресурсов системы от слова совсем. После чрута в пустую папку (только с нужными файликами для взлома жепы), делаете mount -t devfs devfs /dev и получаете доступ ко всем девайсам подключенным к системе.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17 Ответы: #69, #93

54. Сообщение от Омном (?), 01-Июл-25, 15:23   +/
Элегантная дыра
Ответить | Правка | Наверх | Cообщить модератору

55. Сообщение от Аноним (-), 01-Июл-25, 15:30    Скрыто ботом-модератором+4 +/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29

58. Сообщение от нах. (?), 01-Июл-25, 15:56   +3 +/
Все в порядке, он не такой же.
Авторы заявляли что конечной их целью является поддержка дефолтного конфига популярных дистрибутивов.

А там root = (ALL) ALL
и больше ничего нет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #68

59. Сообщение от нах. (?), 01-Июл-25, 16:09   +/
sudo: invalid option -- 'R'

по-видимому это ненужное-ненужно добавлено только в распоследних убунтах. И вероятно надо его выпилить отовсюду вместе с -h


Ответить | Правка | Наверх | Cообщить модератору

62. Сообщение от Александр (??), 01-Июл-25, 16:22   +3 +/
А знаете, в чём причина вот таких косяков?
А причина - нарушение "Unix way", когда разрабатываются простые утилиты для простых задач. Изначально sudo разрабатывалась как простая утилита, но потом под тяжестью фич стала совершенно непростой
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #64, #75

63. Сообщение от 1 (??), 01-Июл-25, 16:25   +/
Это с какими "всеми" ? В дебиане такого нет ! Да и во фряхе тожеж.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #82, #141

64. Сообщение от 1 (??), 01-Июл-25, 16:28   –1 +/
Это цена эволюции ... Вспомни динозавров.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

65. Сообщение от YetAnotherOnanym (ok), 01-Июл-25, 16:31   +/
"Безопасная работа с памятью" как-то обезопасит от детских ошибок с выбором не того файла?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

66. Сообщение от Аноним (43), 01-Июл-25, 16:33   –1 +/
Да, sudo доверия нет, но от openbsd'шников я 100% ожидаю таких же проблем, так что doas - не замена. Не понятно чем теперь пользоваться.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #70, #88

67. Сообщение от User (??), 01-Июл-25, 16:39   +2 +/
Ну вот есть такой kernel.org, ага. Там с годик назад выяснилось, что вот на Самом Главном Сервере через интерактивный ssh тусовалось 100500 дiдов и у пары из них вот ключики того-с. Утекали-с.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #158

68. Сообщение от User (??), 01-Июл-25, 16:41   +/
Ну, разработчики doas не смогли и этого...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #58 Ответы: #78

69. Сообщение от Аноним (17), 01-Июл-25, 16:50   –4 +/
>После чрута в пустую папку ... делаете mount

Ты хоть понимаешь, что такое chroot? Откуда в пустой папке возмется mount?
В школу, за парту.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #100

70. Сообщение от Ананимус (?), 01-Июл-25, 16:58   +/
> Да, sudo доверия нет, но от openbsd'шников я 100% ожидаю таких же
> проблем, так что doas - не замена. Не понятно чем теперь
> пользоваться.

Ну они вряд ли затолкают в doas поддержку chroot с nsswitch.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #77

71. Сообщение от Адмирал Майкл Роджерс (?), 01-Июл-25, 17:00   +/
Ни в коем случае, сэр.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

72. Сообщение от YetAnotherOnanym (ok), 01-Июл-25, 17:04   +/
> файл /etc/nsswitch.conf загружался в контексте нового корневого каталога, а не системного каталога

Гы... какая прелесть!

Ответить | Правка | Наверх | Cообщить модератору

73. Сообщение от vlad1.96 (ok), 01-Июл-25, 17:10   +/
Уже давно везде внедрён. Правда создавали её в первую очередь для systemd-run, а не для прямого использования
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32 Ответы: #111

74. Сообщение от Аноним (74), 01-Июл-25, 17:12   –1 +/
И ещё отсутствия достаточного количества юнит-тестов (не тестов всей программы). На языках типа C/C++ это делается сложнее чем языках без управления памяти. А значит часто забивают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #34 Ответы: #125

75. Сообщение от нах. (?), 01-Июл-25, 17:21   +2 +/
> Изначально sudo разрабатывалась как простая утилита,

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

А теперь вон и вовсе - добавил новую фичу с детской ошибкой. Сброс привиллегий должен всегда быть ПЕРВОЙ же операцией после chroot - по-моему это должны вбивать в голову еще на подготовительном факультете или в кружке "программирование хеловротов под юникс", с демонстрацией сотни примеров как это бывает, когда сделали неправильно (там и sshd отметился в свое время и еще дофига подобного).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #104

76. Сообщение от Аноним (76), 01-Июл-25, 17:21   +/
А зачем пользователю нужны привилегии рута?

Установку, настройку, обновление - все можно выполнить в рутовой консоли.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #84, #114, #160, #239

77. Сообщение от нах. (?), 01-Июл-25, 17:24   +/
кто бы мог им помешать? Ты в курсе где харчуется автор sudo?
(nsswitch, если что, обрабатывает libc. Просто она не рассчитана на запуск от рута в untrusted окружении - понадобился sudo чтобы этого добиться.)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #70

78. Сообщение от нах. (?), 01-Июл-25, 17:27   –1 +/
А они и не спят!

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #68 Ответы: #154

80. Сообщение от Аноним (83), 01-Июл-25, 17:40   +/
> Однако есть и нормальные альтернативы - https://github.com/LeChatP/RootAsRole

Что-то 17 мая там коммиты подозрительно закончились. Хотя до этого активненько шло.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #44 Ответы: #92, #137

81. Сообщение от Аноним (81), 01-Июл-25, 17:43   –1 +/
Опять в однопользовательской локалхостной системе что-то ломается когда хостов или пользователей нужно больше одного. Новость-то в чём?
Ответить | Правка | Наверх | Cообщить модератору

82. Сообщение от нах. (?), 01-Июл-25, 17:46   +/
Супергерой,спасающий мир от свежего софта, опять успел вовремя?

(в целом, конечно, для sudo НУЖЕН такой супергерой)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

83. Сообщение от Аноним (83), 01-Июл-25, 17:47   +/
> Сейчас же лучшие практики есть

Можно парочку ссылок того, что вы считаете лучшими практиками? А то я столько споров видел, когда обе стороны считали, что именно их практика - лучшая. А по факту просто способ сидеть и 90% времени тратить на рефакторинг, по сути сводящийся к "мне так читабельнее, а кто против - неправ".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50 Ответы: #128

84. Сообщение от Аноним (83), 01-Июл-25, 17:54   +/
Ну у меня, например, стоит запуск openvpn от моего пользователя через sudo без пароля. То есть я хочу, чтобы у меня спрашивало пароль рута для установки/обновления софта, но НЕ для запуска впн. Но за 20 лет похожих кейсов было штук 5 максимум.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #87

85. Сообщение от Аноним (85), 01-Июл-25, 18:00   –1 +/
Хотя делов то, поставил систему и удалил sudo, а ещё под root'ом сделать chmod u-s /bin/su. Права root пользователю ни к чему, а рутовские дела делаются больше всего при установке, больше они не нужны.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #99

86. Сообщение от Разум (?), 01-Июл-25, 18:03   +1 +/
Вот для чего стоит попробовать создать нейросеть, так для выявления таких ошибок.
Правда я уверен уже создали и уже используют.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #129

87. Сообщение от Разум (?), 01-Июл-25, 18:04   –1 +/
а зачем тебе openvpn от рута? Это же не дырявый положительно globalprotect.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #84 Ответы: #146, #210

88. Сообщение от Разум (?), 01-Июл-25, 18:05   +/
Да я бы вообще ничему не доверял даже памяти, см когнитивные искажения. Там только про память больше 20 штук (где 20 число с потолка).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66 Ответы: #117

89. Сообщение от Мимокрокодил (?), 01-Июл-25, 18:14   +4 +/
Их мудрость в том, что вышеупомянутый косяк sudo изначально в опене не работает в виду отсутствия условий для этого :)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

90. Сообщение от Аноним (90), 01-Июл-25, 18:28   +/
А я напоминаю, что эта уязвимость локальная, то есть на уровне проникшего в хату соседа с молотком.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #182, #190

91. Сообщение от нах. (?), 01-Июл-25, 18:37   +1 +/
> Не первая ошибка, только... никто от sudo не отказался после прошлой ошибки.

Ну я начал планомерно выпиливать после sudoedit.

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

> Впрочем алиас никогда не поздно сделать.

неработающий. Потому что обе под[д]елки несовместимы ни по синтаксису, ни по возможностям.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #238

92. Сообщение от Совершенно другой аноним (?), 01-Июл-25, 18:45   +2 +/
Автор закончил [s]школу[/s] университет.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #95

93. Сообщение от Аноним (93), 01-Июл-25, 18:50   +2 +/
Сам то пробовал этот скрипт?
Я вот попробовал, и у меня корневая директория доступна под рутом
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #122

94. Сообщение от Аноним (94), 01-Июл-25, 18:53   –3 +/
Как же замечательно на бсд-подобных системах с doas. Продолжайте использовать софт, в котором легаси идет уже с 80-ых годов, удачи.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #115

95. Сообщение от нах. (?), 01-Июл-25, 18:54   +/
да, я тоже хотел написать - экзамены же ж в школах.
Если б университет - наоборот, было бы экстенсивное развитие, чуваку ж надо на собеседованиях показать свой шитхаб.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #92 Ответы: #200

97. Сообщение от Онаним443 (?), 01-Июл-25, 18:59   –2 +/
Так в дефолтной настройке всё хорошо? Проблема только у нетакусиков??
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #98

98. Сообщение от Аноним (94), 01-Июл-25, 19:02   +/
>Уязвимость проявляется в конфигурации по умолчанию и подтверждена в выпусках sudo с 1.9.14 по 1.9.17 (потенциально затрагивает все версии, начиная с 1.8.33).
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97

99. Сообщение от Аноним (99), 01-Июл-25, 19:06   –2 +/
root на каждый чих требуется в линуксах.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #85 Ответы: #103, #126

100. Сообщение от пох. (?), 01-Июл-25, 19:13   +/
>>После чрута в пустую папку ... делаете mount
> Ты хоть понимаешь, что такое chroot? Откуда в пустой папке возмется mount?

ну так положи его туда!
За чем дело стало?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #69

101. Сообщение от Аноним (101), 01-Июл-25, 19:32   +/
в нормальных дистрах уже обнова приехала
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #145

102. Сообщение от nebularia (ok), 01-Июл-25, 19:49   +/
Вообще считаю, что sudo в базовой системе это дичь какая-то, продвинутая убунтоидами (видите ли, сложно запомнить пароль рута). Да, она имеет свои применения (разрешить пользователям отдельные команды от рута без пароля), но в конфигурации по умолчанию полностью заменяется обычным su с паролем рута. И никакой doas не нужен.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #105

103. Сообщение от Аноним (103), 01-Июл-25, 19:50   +/
Технологией File CAP можно обойтись. Аккуратным DAC.

Это современному сыстемды надо root.

А лет 15 назад ещё были лимоны GNU/Linux с изолированным init, который сам мониторитл пользовательские события и выключал перегружал комп.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99

104. Сообщение от Аноним (168), 01-Июл-25, 19:56   +/
>Сброс привиллегий должен всегда быть ПЕРВОЙ же операцией после chroot - по-моему это должны вбивать в голову еще на подготовительном факультете или в кружке "программирование хеловротов под юникс"

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #75

105. Сообщение от Аноним (168), 01-Июл-25, 19:57   +/
>но в конфигурации по умолчанию полностью заменяется обычным su с паролем рута

Только в однопользовательских системах.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #102 Ответы: #106, #175

106. Сообщение от nebularia (ok), 01-Июл-25, 20:08   +/
Добавить кого-то в sudoers - отдать ему рута. Ничто не мешает сделать дальше что угодно (при конфигурации по умолчанию). Можно просто дать пароль рута и всё.

Для более разумного использования всё равно надо настраивать, тогда же sudo можно и поставить. Нафига оно в базе?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105 Ответы: #110

107. Сообщение от Syndrome (ok), 01-Июл-25, 20:12   +3 +/
Как же неудачно. Только добавили закладку, а её сразу нашли. Ничего, в следующий раз спрячут получше.
Ответить | Правка | Наверх | Cообщить модератору

108. Сообщение от Аноним (121), 01-Июл-25, 20:13   +/
Читайте внимательнее. Это другая уязвимость - заодно исправленная.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

109. Сообщение от Аноним (121), 01-Июл-25, 20:17   –4 +/
Там много других - ещё не выявленных. Сложнее компилятор - больше непредсказуемости. Ассемблерный листинг программ, написанных на Rust читать, анализировать, проверять намного сложнее. чем GCC.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #119

110. Сообщение от Аноним (168), 01-Июл-25, 20:18   +3 +/
>Добавить кого-то в sudoers - отдать ему рута

Вот чем хороши старые прожжёные эникейщики - 0% знаний, 100% уверенности. Нет это далеко не значит, как минимум список команд можно настраивать. Правда там будет целая проблема с аргументами, но да ладно.
>Можно просто дать пароль рута и всё.

Пароль у рута один, пользователей, с повышенными правами может быть несколько. С sudo можно отозвать у одного пользователя за раз полономочия, с su - полномочия отзываются сразу у всех, так как рутовый пароль общий.
>Нафига оно в базе?

Предполагается, что софт нормально написан, а не сетка рабица.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #106 Ответы: #123, #135, #161

111. Сообщение от morphe (?), 01-Июл-25, 20:18   +1 +/
Ты что-то путаешь, потому что run0 это как раз обёртка над systemd-run с интеграцией polkit для поднятия привилегий, и она предназначена для людей (она даже tty в красный перекрашивает)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #73 Ответы: #124, #159, #184

112. Сообщение от Аноним (121), 01-Июл-25, 20:19   –2 +/
Да уж знатный фейл. Запускать что-то с привилегиями root не из соответствующих каталогов.
Где были эти "миллионы глаз"?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

113. Сообщение от Аноним (121), 01-Июл-25, 20:23   +/
Принцип - зачем использовать дополнительно потенциально уязвимое ПО, если можно обойтись без него.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37

114. Сообщение от Аноним (43), 01-Июл-25, 20:33   +/
> Установку, настройку, обновление - все можно выполнить в рутовой консоли.

А зачем пользователю рутовая консоль? Установку, настройку, обновление - всё можно выполнить в консоли пользователя. Почему это удобнее - потому что не нужно дополнительно настраивать окружение рута (от шелла до .vimrc), и история не размазывается по пользователю и руту.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

115. Сообщение от Аноним (43), 01-Июл-25, 20:34   +/
На bsd системах только используется sudo. И на openbsd, да-да. Потому что к openbsd'шным поделкам доверия не больше чем к этому вот решету.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #94 Ответы: #132

116. Сообщение от Аноним (116), 01-Июл-25, 20:46   +/
Растобесие оно такое.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

117. Сообщение от Аноним (121), 01-Июл-25, 20:49   +/
Глазам тоже не стоит доверять. Читал, что глаз видит и передает в мозг только часть картинки. Остальное (периферию) "додумывает" мозг. Вспоминается фильм "Вечное сияние чистого разума", где фирма стирала память о человеке, через воздействие на узлы, отвечающие за память об этом человек. Делала это фирма, когда человек спал. Таким образом, через воздействие на мозг во сне возможно искажение картинки, которую видит человек. )
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

118. Сообщение от Аноним (116), 01-Июл-25, 20:53   +/
> В Ubuntu оказывается неспроста начали менять sudo на  sudo

Тут раст не причём. Вообще не по делу комментарий

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

119. Сообщение от Аноним (121), 01-Июл-25, 20:54   +/
Вдобавок, могу привести такой тезис: Зачем Вы показываете мне этот открытый код, если за компилятор стоит непонятный backend?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #109

121. Сообщение от Аноним (121), 01-Июл-25, 21:00   +1 +/
Закладка, внедренная под предлогом новой фичи.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5

122. Сообщение от Аноним (121), 01-Июл-25, 21:05   +/
Потому что chroot не сработал, но root выполнил зловред из папки доступной для записи пользователю.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #93 Ответы: #149

123. Сообщение от Аноним (121), 01-Июл-25, 21:23   –1 +/
и тут мы вспоминает selinux с его MAC
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110

124. Сообщение от Аноним (121), 01-Июл-25, 21:41   +/
Гремучая смесь.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

125. Сообщение от Аноним (125), 01-Июл-25, 21:55   +1 +/
> На языках типа C/C++ это делается сложнее чем языках без управления памяти.

Абсолютная глупость.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #74

126. Сообщение от Аноним (85), 01-Июл-25, 21:57   +/
Влажную уборку комнаты проводить надо регулярно.
А если серьёзно, то чем вы там занимаетесь в Линуксе, что надо регулярно под root'ом заходить?
У меня это несколько дней за целый год: обновления. Ну и когда только поставил, то /etc/fstab и всякие подобные конфиги под root'ом правятся, проги нужные ставятся и всё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #99 Ответы: #163, #222

127. Сообщение от morphe (?), 01-Июл-25, 22:19   +/
> Мудро то оно может и да, но похоже что этот вид багов
> вполне можно и на rust допустить

Не правда, по мнению opennetовцев Rust не умеет динамическую линковку, а тут баг как раз с ней

Шах и мат, эксперты.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #4 Ответы: #170, #178

128. Сообщение от Аноним (125), 01-Июл-25, 22:20   +/
Это где-то нет стандарта кодирования? В котором все и прописывается, а кто не соответствует - депремируется и правит код...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #83 Ответы: #177

129. Сообщение от Аноним (125), 01-Июл-25, 22:28   +/
Не осилят. Они обработку ошибок одной функции не могут написать так, что бы придраться не к чему было.

Ну не любят программисты ошибки обрабатывать. И делают это спустя рукава - вот нейронки и не могут это сделать нормально.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #86

131. Сообщение от anonymous (??), 01-Июл-25, 22:31   –1 +/
че то ссыкотно, красношляпка на 4 дня обновление инфраструктуры делает и из за этого ни koji ни bodhi недоступны. Страшно очень страшно. Если бы мы знали что это такое. 4 июля как раз у супостатов главный праздник. Обожаю конспирологию.
Ответить | Правка | Наверх | Cообщить модератору

132. Сообщение от Аноним (132), 01-Июл-25, 22:57   –1 +/
лучше использовать дырявый эксплойт от редхата, замаскированный под утилиту для получения доступа к пользователям?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #115

133. Сообщение от Аноним (133), 01-Июл-25, 23:00   +1 +/
В debian 12 уже исправлено. Вообще sudo не использую
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #136

134. Сообщение от Аноним (-), 01-Июл-25, 23:03   +/
> я пока особо не видел где-то сценариев для настройки/установки чего-либо где бы sudo заменили на run0 или sudo-rs.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #37 Ответы: #138

135. Сообщение от nebularia (ok), 01-Июл-25, 23:14   +/
Ну сорри если у тебя окно контекста составляет одно предложение. Я дальше явно написал, что это дело надо настраивать. В линуксе вообще много полезных вещей, которые надо настраивать. Но мы же не тащим всё в базовую систему? Кому надо, тот поставит и настроит.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #164, #171

136. Сообщение от Аноним (121), 01-Июл-25, 23:21   +/
trixie опять запаздывает от остальных.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #133

137. Сообщение от Витюшка (?), 01-Июл-25, 23:26   +1 +/
This project was initiated by IRIT and sponsored by both IRIT and Airbus PROTECT through an industrial PhD during 2022 and 2025

IRIT Computer Science Research Institute of Toulouse

Финансирование/грант/PhD закончился.
Но насколько я помню там всё сделано (3.0.0 версия).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #80 Ответы: #193

138. Сообщение от Аноним (-), 01-Июл-25, 23:29    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134

139. Сообщение от Аномалии (?), 01-Июл-25, 23:34   +/
run0 замечательная замена sudo и намного безопасней
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #142

140. Сообщение от name (??), 01-Июл-25, 23:37   +/
Скажу наивность - microsoft давно владеет sudo. Нынешний разработчик, Todd C Miller, является иноагентом ^W^W давно понял в чем суть опенсорца и получает финансирование от мелкомягких. Причем опенбсдшники это давно поняли и выкатили doas. Тут закладка, тут не ошибка.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #156

141. Сообщение от Alex_Kemail (??), 01-Июл-25, 23:56   +/
Во фре была похожая уязвимость лет 10 назад в ftpd.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

142. Сообщение от 12yoexpert (ok), 02-Июл-25, 00:06   +/
ложь
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #139

143. Сообщение от Аноним (143), 02-Июл-25, 00:06   +2 +/
Нет sudo - нет проблем. Не стесняюсь залогиниться рутом, если чего надо поадминить.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #176

145. Сообщение от 12yoexpert (ok), 02-Июл-25, 00:14   +/
не приехала

https://bugs.gentoo.org/show_bug.cgi?id=CVE-2025-32463

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #101 Ответы: #162

146. Сообщение от Аноним (146), 02-Июл-25, 00:40   +/
От непривилегированного пользователя не запускалось. Вроде. Точно не скажу, настраивал последний раз уже лет пять назад.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

148. Сообщение от Омномноном (?), 02-Июл-25, 00:53   +/
Это платные. У них набор нарративов. Стройность нарратива - не метрика. Количество - метрика.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

149. Сообщение от Аноним (93), 02-Июл-25, 01:13   +/
И к чему это? Мне пофиг как сработает, рут появился в руте. Изначально вопрос был chroot, который я вообще не заметил в скрипте
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #122 Ответы: #157, #229

150. Сообщение от Аноним (150), 02-Июл-25, 03:21   +/
А что будет вместо?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #43

151. Сообщение от Lamerok (?), 02-Июл-25, 03:24   +/
нет там chroot, ты понял неправильно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

153. Сообщение от Андрей (??), 02-Июл-25, 05:43   +/
а ещё нужен gcc ?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #183

154. Сообщение от User (??), 02-Июл-25, 07:28   +1 +/
> А они и не спят!
> (и да, удивительно уродский синтаксис, при том что синтаксис конфига это единственное
> достоинство как раз sudo, и даже описание его есть в виде,
> готовом к скармливанию в транслятор. Но нет, надо было вот то
> череззадничное нечитаемое в принципе притащить.)

Не, ну если (В след за авторами) предполагать, что правил у тебя будет - ну вот ДВА (И те - дефолтные) - то жить наверное можно; а вот портянка этого вперемешку - боль, конечно. Еще и нет возможности из conf.d правила заинклудить ансибляторам на радость, ага.
Хотя - кто крупный haproxy крутил - такого не боится ).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78

155. Сообщение от User (??), 02-Июл-25, 07:40   +1 +/
> Да, doas рулит, а для рядовых задач и вовсе хватает su.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9 Ответы: #252

156. Сообщение от User (??), 02-Июл-25, 07:43   +1 +/
> Скажу наивность - microsoft давно владеет sudo. Нынешний разработчик, Todd C Miller,
> является иноагентом ^W^W давно понял в чем суть опенсорца и получает
> финансирование от мелкомягких. Причем опенбсдшники это давно поняли и выкатили doas.
> Тут закладка, тут не ошибка.

"I also work on OpenBSD"(С), ога. Ох, это другое!

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #140

157. Сообщение от User (??), 02-Июл-25, 07:45   +2 +/
> И к чему это? Мне пофиг как сработает, рут появился в руте.
> Изначально вопрос был chroot, который я вообще не заметил в скрипте

"Молчи, смерд! Мы обсуждаем идеального, метафизического таракана!"(С)
Коллеги, так сколько там лап у животного? Аристотель писал, что 8...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

158. Сообщение от 0xdeadbee (-), 02-Июл-25, 07:54   –1 +/
если ключи были не беспарольные и пароль не похож на словарный, то можно плюнуть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67 Ответы: #167

159. Сообщение от Анониматор (?), 02-Июл-25, 07:57   +/
первую же мою попытку применения run0 dnf на последнем 10 клоне красношляпы пресёк selunux.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #197

160. Сообщение от User (??), 02-Июл-25, 08:03   +2 +/
> А зачем пользователю нужны привилегии рута?
> Установку, настройку, обновление - все можно выполнить в рутовой консоли.

Ну вот понимаешь - этих самых "пользователей", или, вернее, "администраторов" бывает больше одного. Есть вот "отдел инфраструктуры", который отвечает за VM+ОС, есть "отдел поддержки ИС" - который ведает собственно тем полезным, что в этой ИС вертится, у ИС есть СУБД, за которую отвечают вот вообще DBA - а где-то рядом гордо реет ИБ, которым "А можно всех посмотреть?!" ("Зойчем?!" они сами не знают, но ТАК ПОЛОЖЕНО).
И вот у всех этих нет, даже не товарищей, а отделов - есть определенная текучка кадров - и вот как ты себе представляешь замену пароля root'а при увольнении Уаси из "поддержки производственных систем" и как будешь отвечать на вопросы "А что Уася делал на этих серверах в последние две недели?" от г-д из ИБ (Доступ у них, напомню, есть - но лапки, лапки...) - я лично не знаю, но надеюсь HR тебе их не задаст.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76 Ответы: #174, #227

161. Сообщение от Аноним (-), 02-Июл-25, 08:04   –1 +/
> Пароль у рута один, пользователей, с повышенными правами может быть несколько. С sudo можно отозвать у одного пользователя за раз полономочия, с su - полномочия отзываются сразу у всех, так как рутовый пароль общий.

И как часто такой функционал востребован на какой-нибудь убунточке? Как ты полагаешь, каков процент от общего числа инсталляций использует эту функциональность? Хотя бы 1% наберётся?

И из-за этого одного процента, 99% получают дефолтом переусложнённый, дырявый и ненужный им кусок софта.

Это антипаттерн для создания систем. Это как C, который делает 100% кода unsafe ради того 1% случаев, когда это действительно надо. Это мышление дидов из 70-х годов, от которого девелоперы unix до сих пор не могут излечиться.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #110 Ответы: #166, #180

162. Сообщение от larutarg (ok), 02-Июл-25, 08:06   –2 +/
Тебе же говорят, в нормальных дистрибутивах

https://mirror.yandex.ru/mirrors/manjaro/stable/core/x86_64/...

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #145 Ответы: #199

163. Сообщение от User (??), 02-Июл-25, 08:07   +/
> Влажную уборку комнаты проводить надо регулярно.
> А если серьёзно, то чем вы там занимаетесь в Линуксе, что надо
> регулярно под root'ом заходить?
> У меня это несколько дней за целый год: обновления. Ну и когда
> только поставил, то /etc/fstab и всякие подобные конфиги под root'ом правятся,
> проги нужные ставятся и всё.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126 Ответы: #195

164. Сообщение от User (??), 02-Июл-25, 08:10   +/
> Ну сорри если у тебя окно контекста составляет одно предложение. Я дальше
> явно написал, что это дело надо настраивать. В линуксе вообще много
> полезных вещей, которые надо настраивать. Но мы же не тащим всё
> в базовую систему? Кому надо, тот поставит и настроит.

Кому не надо - удалит, ага?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

166. Сообщение от User (??), 02-Июл-25, 08:13   +/
>> Пароль у рута один, пользователей, с повышенными правами может быть несколько. С sudo можно отозвать у одного пользователя за раз полономочия, с su - полномочия отзываются сразу у всех, так как рутовый пароль общий.
> И как часто такой функционал востребован на какой-нибудь убунточке? Как ты полагаешь,
> каков процент от общего числа инсталляций использует эту функциональность? Хотя бы
> 1% наберётся?
> И из-за этого одного процента, 99% получают дефолтом переусложнённый, дырявый и ненужный
> им кусок софта.
> Это антипаттерн для создания систем. Это как C, который делает 100% кода
> unsafe ради того 1% случаев, когда это действительно надо. Это мышление
> дидов из 70-х годов, от которого девелоперы unix до сих пор
> не могут излечиться.

Ну, предполагаю, что примерно 100% корпоративных инсталляций, да? Т.е. примерно "все", кто платит ).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161

167. Сообщение от User (??), 02-Июл-25, 08:18   +/
> если ключи были не беспарольные и пароль не похож на словарный, то
> можно плюнуть.

https://www.opennet.dev/opennews/art.shtml?num=61186
"И так сойдет!"(С)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #158

168. Сообщение от Аноним (168), 02-Июл-25, 09:50   –1 +/
>Анон совсем не сектант, видящий везде атаку на своё божество, единственно верный ЯП rust, да... Не сектант!

Разумеется в мире только два языка c/c++ и rust. Ни ocaml, ни go, ни haskell, ни java, ни кучи других языков попросту не существует. А если Idris или ATS вспомнить, то сишников вообще инфаркт хватит.
>и тут же прибегает хрусто-фанатик, жалуйющийся на каких-то сишников, который теперь выдыхают слишком свободно:

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

Вот вам самый простейший пример:
Eio_main.run (fun env -> Eio.Path.read_dir (Eio.Path.(Eio.Stdenv.cwd env / "../")))
Данный код прямо в рантайме проверит, есть ли возможность писать по данному пути, и выкинет ошибку, так как осуществляется выход за границы разрешённой облоасти. Попрошу заметить, что данную проверку с помощью символических ссылок вы не обойдёте. Да, здесь есть куда расти, но кодеры на ocaml уже сделали важнейший шаг вперёд, который сишники не сделали и за полвека - догадались перестать использовать сырые строки. Но сишники хотят плодить баги, ибо у них даже строк до сих пор нет, что уже о специальных типах говорить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

169. Сообщение от Соль земли2 (?), 02-Июл-25, 09:53   +/
Очень даже может спасти. Rust прививает хорошие практики программирования. Отсюда и логику проще увидеть. Я бы ещё функциональщину рассмотрел, Haskell там...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18 Ответы: #213

170. Сообщение от Аноним (-), 02-Июл-25, 09:55   –1 +/
> не умеет динамическую линковку

Умеет.
https://doc.rust-lang.org/reference/linkage.html

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127

171. Сообщение от Аноним (168), 02-Июл-25, 09:57   +/
>Я дальше явно написал, что это дело надо настраивать.

Что надо настраивать? Как только вы добавляете нового пользователя в группу sudo, всё настройка уже завершена, у двух пользователей уже два разных пароля.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #135

172. Сообщение от Илья (??), 02-Июл-25, 09:58   –1 +/
> хрусто-фанатик

Не вижу в его словах ничего связанного с хрустом. Он точно фанатик?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #35

173. Сообщение от Аноним (-), 02-Июл-25, 10:00   +/
Переходим на run0? В secureblue только его и используют.
Ответить | Правка | Наверх | Cообщить модератору

174. Сообщение от пох. (?), 02-Июл-25, 10:19   +1 +/
"Коллеги, а как зайти на сервер-нахерн-был-ненужен.но.вот? - Там старый рутовый пароль! - Я пробовал, не пускает! - Не тот старый, а тот который до увольнения Васи в позапрошлом году! - А я тогда ж еще не работал! - Ща, найду пришлю. - А, ооок."

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

И да, иногда еще хочется дать возможность техподдержке что-то посмотреть и может даже перезапустить, но не rm -rf / набрать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160

175. Сообщение от пох. (?), 02-Июл-25, 10:22   +/
> Только в однопользовательских системах.

Причем в этих системах всем наплевать на увизгвимости в суду - их wsl и так в безопастности, на него ходит только васян с локалхоста под виндой (а он и так рут)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #105

176. Сообщение от Аноним (176), 02-Июл-25, 10:36   +/
Ну, заадминь там себе Remmina если такой умный. Даже интересно как вы такие в никсах живёте без VNC...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #143

177. Сообщение от Аноним (177), 02-Июл-25, 10:52   +/
В смысле "где-то нет"? Речь же шла не о случайных стандартах кодирования, которые, да, есть везде. И везде свои. Речь шла о "лучших практиках". Лучшие - они для всех одинаковые. И вероятно, хотя бы с минимальной аргументацией "лучшести".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #128

178. Сообщение от ptr (ok), 02-Июл-25, 10:59   +/
Во-первых, у Rust нет стабильного ABI, что требует при его использовании перекомпиляции всей системы и всех установленных в ней приложений при выходе новой версии компилятора, что на практике не реализуемо. Но C ABI он поддерживает. Само собой, как только начинается C ABI, сразу заканчивается встроенный в Rust механизм безопасной работы с памятью.

Во-вторых, даже в случае Rust ABI, в его текущем виде, при динамическом связывании нет поддержки дженериков.

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

К сожалению, сообщество Rust очень мало уделяет внимание этой проблеме. Пожалуй, только разработчики Rеdox озабочены этой проблемой. В первую очередь Anhad Singh, за что я ему очень благодарен. Но его решение всё же является костылем через C ABI, а не средством, предоставляемым компилятором.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #127 Ответы: #181, #191

179. Сообщение от myster (ok), 02-Июл-25, 11:20   +2 +/
по такой логике и заборы не нужны, их же перелезут кому припрёт
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #8

180. Сообщение от Аноним (168), 02-Июл-25, 12:03   +/
>Как ты полагаешь, каков процент от общего числа инсталляций использует эту функциональность? Хотя бы 1% наберётся?

Мне не нужно, значит никому не нужно - типичная логика тыжпрограммиздов с опеннета.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #161 Ответы: #192

181. Сообщение от Аноним (168), 02-Июл-25, 12:04   +/
>и всех установленных в ней приложений при выходе новой версии компилятора, что на практике не реализуемо.

Более чем реализуемо. Но разумеется не в допотопных арчах и дебианах.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #185

182. Сообщение от 1 (??), 02-Июл-25, 12:14   +1 +/
Дык если бы сосед ... а тут мимкрокодил
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

183. Сообщение от 1 (??), 02-Июл-25, 12:17   +/
Собери на другом компе и создай arхивчик
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #153

184. Сообщение от vlad1.96 (ok), 02-Июл-25, 12:18   +/
Ты прав
Я почему-то был абсолютно уверен, что это часть systemd-run
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

185. Сообщение от ptr (ok), 02-Июл-25, 13:29   –1 +/
Ну да. Я слышал о гентушниках, пересобиравших мир с LibreOffice, KDE и т.п. по несколько суток. Естественно, обычны были ситуации, когда оно просто так не собиралось. Сколько процентов таких пользователей?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #181 Ответы: #201

186. Сообщение от Анонимemail (186), 02-Июл-25, 14:21   +/
Позволю себе процитировать croco:

Если вы из-под аккаунта с одними полномочиями осуществляете доступ к аккаунту с другими полномочиями, то с точки зрения безопасности компрометация первого автоматически влечёт компрометацию второго. Из этого следует, что в сеансе работы нельзя повышать полномочия. Понижать можно, повышать нельзя. Вообще нельзя, понимаете? Никаким способом. В этом плане sudo вообще попадает под категорический запрет, а su остаётся в системе (без suid-бита) для понижения полномочий при возникновении такой потребности. "Вместо" них пользоваться нельзя ничем, ssh root@localhost тоже делать нельзя. Если нужны права root'а, в систему следует изначально зайти под root'ом. Если машина локальная, то переключиться на текстовую консоль и на ней зайти. Если удалённый доступ, то ssh root@remote-host, только следует при этом понимать, что тот аккаунт, под которым вы работаете на своей рабочей станции и из-под которого делаете этот вот ssh root@somewhere, охранять надо аки зеницу ока, уж во всяком случае браузеры под ним гонять нельзя совершенно точно.

А уж как надо беречь root на такой станции — ну, можно не объяснять. Почему-то часто встречаются админы, которые уверены, что аккаунты серверов надо беречь сильно-сильно, а аккаунты на личных машинах "типа фиг с ними". Ну так вот они заблуждаются: компрометация любого аккаунта означает компрометацию всего, к чему из-под него осуществляется доступ. Компрометация личного админского ноута означает компрометацию всех серверов, которые он админит.

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

Просто у каждого админа должен быть СВОЙ аккаунт с нулевым uid'ом. В коллективах, где работал я, обычно мы такие аккаунты называли с префиксом r_. Например, мой личный root на всех машинах назывался r_croco.

Что касается логгинга выполняемых команд -- польза от него несравнима с зияющей дырой в безопасности, которая открывается из-за наличия sudo.

А ещё -- если использовать криптоключики и authorized_keys, то можно обойтись и одним аккаунтом рута.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #188, #215

187. Сообщение от Мистер Сишник сэр (?), 02-Июл-25, 15:28   +/
Так и есть. Как Сишник, я счастлив.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #31

188. Сообщение от Аноним (168), 02-Июл-25, 15:45   +/
>Позволю себе процитировать croco:

Его надо не цитировать, а забыть как кошмар.
>Из этого следует, что в сеансе работы нельзя повышать полномочия.

В юниксе исторически почти всё требует root. Потом, со времением это немножко поправили, но далеко не до конца. Тот же самый ping без root прав послать не получится, потом это замаскировали через suid, а потом и через capabilities. Но сам по себе root из этого абсолютно никуда не делся.
>Если нужны права root'а, в систему следует изначально зайти под root'ом. Если машина локальная, то переключиться на текстовую консоль и на ней зайти.

Это, мягко говоря, крайне неудобно, если вы занимаетесь хоть чем-то сдожнее, чем вбиванием apt update. Как например, этот персонаж планирует писать какой-то сложный текст, типа конфига или копировать приватный ключ? Будет запускать мессенджер под рутом?
>уж во всяком случае браузеры под ним гонять нельзя совершенно точно.

А почему это только браузеры?
>у меня довольно обширный опыт коллективного администрирования серверов

Тот самый случай, когда опыт данного персонажа работает во вред. https://www.linux.org.ru/forum/talks/17863538
>Столяров эти рассказы воплотил в жизнь, начав писать CMS мечты и допустив постыднейшую ошибку в безопасности. http://stolyarov.info/node/428
>Вывод: Столяров — это классический, можно сказать, эталонный системный администратор из 90-х. Человек, который отказался развиваться, отринул курсы повышения квалификации и навсегда остался в сладком возрасте 20 лет в рамках того давно ушедшего социума, его стереотипов и правил.
>Книги Столярова — это книги 90-х, хотя они написаны через четверть века, в конце 2010-х. Это памятник эпохи начала массовой компьютеризации в России. Это надо понимать при работе с ними. Читая работы Столярова, надо давать «поправку на ветер», и всё будет хорошо.

----
>Просто у каждого админа должен быть СВОЙ аккаунт с нулевым uid'ом.

Давайте каждому админу дадим абсолютно полный доступ сразу ко всей системе.
>А ещё -- если использовать криптоключики и authorized_keys, то можно обойтись и одним аккаунтом рута.

Ещё один вредный совет. У пользователя может быть несколько ключей, как он собирается проверять, что удалены сразу все ключи? Тем более, что редактировать authorized_keys через текстовой редактор - явно не лучшая идея.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186 Ответы: #189

189. Сообщение от пох. (?), 02-Июл-25, 17:10   +1 +/
> В юниксе исторически почти всё требует root.

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

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

Т.е. либо тебе доверили пароль, эквивалентный рутовому, либо процессу с которым ты работаешь доверили - запуском от имени кого-то кто такой пароль знает.

И страдать фигней совершенно незачем.

Мы не работаем постоянно от рута только затем чтоб оставались какие-то возможности контроля и логинга, и ненароком самому себе чего-нибудь не сломать. (был когда-то еще и софт ломавшийся при работе от рута, но сейчас такое 25 лет уже немодно)
Там где то и другое неважно, работай от рута, твоя wsl в безопастносте.

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

+1

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #188

190. Сообщение от пох. (?), 02-Июл-25, 17:22   +1 +/
ну как бы если подтвердится (пока на моих системах не получалось) что это таки работает от юзера, отсутствующего нафиг в sudoers вообще - то любое rce от nobody автоматически перерастает в катастрофу общесерверного масштаба.

так себе в общем новость.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90 Ответы: #250

191. Сообщение от morphe (?), 02-Июл-25, 17:29   +/
> Во-вторых, даже в случае Rust ABI, в его текущем виде, при динамическом связывании нет поддержки дженериков.

И как ты это видишь?

Есть библиотека:

pub fn print_smth<T: Display>(value: &T) {
  println!("{value}");
}
pub fn init() {
  print_smth("The library has been initialized");
}

Библиотеку собрали, print_smth для нужд библиотеки мономорфизировало для &str

Внешний пользователь хочет передать в этот метод u32

Вопрос - откуда в этой библиотеке возьмётся мономорфизация print_smth для u32?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #178 Ответы: #202

192. Сообщение от Аноним (-), 02-Июл-25, 17:29   +/
> Мне не нужно, значит никому не нужно - типичная логика тыжпрограммиздов с опеннета.

Может быть это и так. Но ты не ответил на вопрос: каков процент инсталляций действительно полагается на функционал sudo так, что его нетривиально заменить на su?

Нет ответа, значит ты сам не знаешь? И заменяешь аргументы по сути на ad hominem? Нушо я могу сказать. Малаца. Гораздо интеллектуальнее чем "типичная логика тыжпрограммиздов с опенета".

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #180 Ответы: #196

193. Сообщение от пох. (?), 02-Июл-25, 17:31   +/
А, от оно чего. Про phd-то я и не подумал.

> Но насколько я помню там всё сделано (3.0.0 версия).

вот это я понимаю, как стонхендж - на тысячелетия.
Не то что этот Тодд, каждые пол-года что-то доделывает.

(это вот все потому что он кандидатскую не написал!)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #137

194. Сообщение от laindono (ok), 02-Июл-25, 18:43   +/
С другой стороны, если какой-то класс ошибок полностью предотвращён, остаётся больше времени для поиска и предотвращения ошибок из других классов. Помимо этого наличие встроенного мощного анализатора и прочей инфраструктуры так же помогает в отлавливании ошибок. Даже такие штуки, как единый стиль форматирования кода, вносят свою лепту.

Так что при сравнимых трудозатратах, код на Rust будет содержать меньше логических ошибок. Возможно на языках вроде Haskell в этом плане ситуация ещё лучше, там нужно быть аутистом высшего порядка, что в свою очередь является порогом входа. Это работает и в другую сторону. Языки вроде JavaScript в среднем содержат большее число логических ошибок и для подобных языков обязательно нужны средства вроде сборки мусора. Среднее качество этих программистов ниже и вероятность, с которой они начнут портить память, стремится к единице.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #18

195. Сообщение от Аноним (195), 02-Июл-25, 19:20   +/
Причём здесь место работы? У меня именно на домашнем компе sudo удалён лично мною, а на /bin/su sticky bit поставлен в ноль (чтобы нельзя было из под пользователя выполнить su -).
На работе же если пользователю позволяется лезть в админку, то лучше по достижении минимально необходимого для лёгкого поиска работы опыта сразу же увольняться и искать нормальную работу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #163 Ответы: #198, #223

196. Сообщение от Аноним (168), 02-Июл-25, 20:09   +/
>Может быть это и так.

Не может быть, а так и есть.
>каков процент инсталляций действительно полагается на функционал sudo

Сам по себе процент не будет говорить вообще ни о чём. Есть школьник, поставивший gnu/linux в виртуалку поиграть, которому что su, что sudo - всё равно. Имеет смысл равняться на данного школьника или нет? А если целая школа школьников? А на админа в фирме, обслуживающего десяток заказчиков?
>Нет ответа, значит ты сам не знаешь?

Такой ответ можно дать только если в 100% случаях будет включена телеметрия.
>Нушо я могу сказать.

Ну я, например, использую, сразу на нескольких системах. Что дальше?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #192

197. Сообщение от morphe (?), 02-Июл-25, 20:15   +1 +/
> первую же мою попытку применения run0 dnf на последнем 10 клоне красношляпы
> пресёк selunux.

Значит политики неправильные. Для run0 даже правила не нужны особо сложные, потому что это не suid, и работает он намного проще с точки зрения безопасности

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #159 Ответы: #231

198. Сообщение от User (??), 02-Июл-25, 20:33   +/
> Причём здесь место работы? У меня именно на домашнем компе sudo удалён
> лично мною, а на /bin/su sticky bit поставлен в ноль (чтобы
> нельзя было из под пользователя выполнить su -).

Да при том, что на твой комп всем пофиг от слова "совсем". Хоть с перфокарт управляй - никто слова дурного не скажет. А вот при попытке распространить сию практику могут обнаружить нюансики, ага.

> На работе же если пользователю позволяется лезть в админку, то лучше по
> достижении минимально необходимого для лёгкого поиска работы опыта сразу же увольняться
> и искать нормальную работу.

Ну, администраторы - всего лишь категория пользователей с расширенными правами, не?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195

199. Сообщение от 12yoexpert (ok), 02-Июл-25, 20:43   –1 +/
$ cat /etc/hosts | grep yandex | wc -l
32
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #162

200. Сообщение от 12yoexpert (ok), 02-Июл-25, 20:45   +/
так и чего не написал, раз экзамены?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #95

201. Сообщение от Аноним (168), 02-Июл-25, 21:16   +1 +/
>Я слышал о гентушниках

Бинарный кеш изобретён.
>больше половины населения планеты

Это кто?
>скачивать по сотне гигабайт кем-то пересобранных всех своих приложений

Даже если пересобирать буквально весь софт, сотни гигабайт не будет. Посмотрите на размер ISO образов, там даже восьми гигабайт за раз нет.
>с системой каждые три месяца позволить себе не могут

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

nix давным давно изобретён, когда несколько библиотек сосуществуют без ручного вмешательства.
>Особенно с учетом того, что переход на новую версию Rust компилятора и stdlib часто приводит к необходимости правки кода.

У раста давным давно изобретены editions. Хватит людей вводить в заблуждение.

Рекомендую, хотя бы изредка смотреть в календарь. 1970-ые давно прошли.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #185 Ответы: #205

202. Сообщение от ptr (ok), 02-Июл-25, 21:21   +/
> И как ты это видишь?

Для начала нужна хотя бы поддержка RTTI в ABI. И речь далеко не только о POD типах.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #191 Ответы: #203

203. Сообщение от morphe (?), 02-Июл-25, 21:35   +/
> Для начала нужна хотя бы поддержка RTTI в ABI. И речь далеко
> не только о POD типах.

Ну допустим для динамической диспатчеризации добавят RTTI (Хотя для Rust это и не нужно, у тебя же нет иеархии классов)

Что делать со статической? И какое это отношение имеет к генерик типам (шаблонам в случае плюсов)?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #202 Ответы: #206

205. Сообщение от ptr (ok), 02-Июл-25, 22:28   +/
>>Я слышал о гентушниках
> Бинарный кеш изобретён.

И чем он поможет, если необходима полная перекомпиляция?

>>больше половины населения планеты
> Это кто?

Это те ~5 миллиардов населения планеты, которые не имеют доступа к широкополосному интернету. Поинтересуйтесь тарифами на мобильный интернет хотя бы в РФ. А к проводному интернету в РФ имеют доступ менее 40 миллионов человек. Тоже явно меньше половины населения страны.

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

Вы пользуетесь исключительно голой системой? У той же Ubuntu 24.04 размер репозитория больше 2ТБ. Со сторонними репозиториями будет на порядок больше.
А на NAS у сына только дистрибутивы игр уже в 4 ТБ не помещаются.
Особенно интересно узнать, что Вы предлагаете делать с программными продуктами, которые необходимы в работе, но уже давно не поддерживаются по причине прекращения деятельности их производителя? Закупать новый МРТ за 100 миллионов рублей только потому, что в какой-то системной библиотеке обнаружена уязвимость, а поставщик свой софт уже пару лет как не обновляет?
Ваш призыв к столь глобальному вендор-локу уж очень сильно противоречит идеологии opennet.

> nix давным давно изобретён, когда несколько библиотек сосуществуют без ручного вмешательства.

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

>>Особенно с учетом того, что переход на новую версию Rust компилятора и stdlib часто приводит к необходимости правки кода.
> У раста давным давно изобретены editions. Хватит людей вводить в заблуждение.

Редакции редакциями, а крейты - крейтами. Ошибки и уязвимости даже в stdlib исправляются исключительно в новых версиях. Не говоря уже о прочих крейтах.
Вы вообще на Rust ведете разработку или только теоритезируете? Мне, как минимум, дважды в год приходится вносить правки в свой код из-за необходимости переходить на новые версии крейтов.
Последний сюрприз был в Rust 1.85, когда core::ffi::c_char из i8 превратился в u8.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #201 Ответы: #207

206. Сообщение от ptr (ok), 02-Июл-25, 23:15   +/
> Хотя для Rust это и не нужно, у тебя же нет иеархии классов

Но есть виртуальные таблицы и дженерики. Отсюда и этот костыль https://docs.rs/rtti/latest/rtti/
Или этот https://docs.rs/vtable/latest/vtable/

> какое это отношение имеет к генерик типам

Читйте внимательней:
>> для каких типов должен быть скомпилирован код в динамически загружаемой библиотеке.
>> И нет встроенных средств рефлексии, чтобы во время выполнения выяснить,
>> какие типы поддерживаются в динамически загружаемой библиотеки.

В рамках идеологии Rust вполне реализуема поддержка дженериков в динамически загружаемой библиотеке, пусть и с ограничением не только на реализованные трейты, но и на типы, для которых будет скомпилирован код. Причем, с развитым RTTI можно поддерживать не только POD типы, но и структуры и перечисления, налагая определенные требования на присутствие только некоторых полей или типов в них.
Этой истории не первый год. Например, два года назад определенные попытки предпринимались joshtriplett в виде эксперимента с crabi https://github.com/rust-lang/rfcs/pull/3470
Но воз и ныне там (

> шаблонам в случае плюсов

Шаблоны в C++ превращаются в боль на крупных проектах, когда малейшая правка требует многочасовой перекомпиляции всего кода. Поэтому я веду речь не о шаблонах, а об аналоге Itanium ABI для Rust.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #203 Ответы: #208, #209

207. Сообщение от Аноним (168), 03-Июл-25, 00:16   –1 +/
>И чем он поможет, если необходима полная перекомпиляция?

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

Теперь осталось как-то выяснить, у кого из них есть компьютеры, при чём не на 98 винде.
>Поинтересуйтесь тарифами на мобильный интернет хотя бы в РФ.

Тарифы в РФ довольно щадящие, в некоторых обласях сразу 100 Гб за месяц можно купить, без дополнительных пакетов. Так что ищите другие страны.
>А к проводному интернету в РФ имеют доступ менее 40 миллионов человек. Тоже явно меньше половины населения страны.

Опять же, нужно узнать, скольки из них вообще используют компьютеры. Ибо у одних компьютера не будет, будет только смартфон, а у кого-то и смартфона не будет.
>Вы пользуетесь исключительно голой системой? У той же Ubuntu 24.04 размер репозитория больше 2ТБ. Со сторонними репозиториями будет на порядок больше.

Я сомневаюсь, что легко будет найти человека, который будет использовать все эти 2 Тб за раз. Тем более, что в репозитории будет куча софта на других языках, типа python, java, и так далее.
>Особенно интересно узнать, что Вы предлагаете делать с программными продуктами, которые необходимы в работе, но уже давно не поддерживаются по причине прекращения деятельности их производителя? Закупать новый МРТ за 100 миллионов рублей только потому, что в какой-то системной библиотеке обнаружена уязвимость, а поставщик свой софт уже пару лет как не обновляет?

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

Хватит придумывать вендорлок там, где его нет.
>Исключительно благодаря стандартизированному C ABI.

Си ABI здесь совершенно не причём. Nix умеет собирать воспроизводимые окружения так, чтобы несколько библиотек с разными ABI могли сосуществовать вместе, на одной машине. Там требования к коду минимальны, типа номеров системных вызовов, abi условного xorg-а. У вас просто будет столько версий библиотек, сколько нужно, чтобы запустить всё это дело.
>между сменой версии библиотеки и глобальному изменению ABI во всей системе и всех приложениях?

Если api поменять, то abi тоже неизбежно изменится. Можете даже не надеяться, что если код под qt4, не собирающийся под qt6, сохранит abi.
>Мне, как минимум, дважды в год приходится вносить правки в свой код из-за необходимости переходить на новые версии крейтов.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #205 Ответы: #211

208. Сообщение от morphe (?), 03-Июл-25, 00:20   +/
> Но есть виртуальные таблицы и дженерики.

Но ты же понимаешь что эти вещи ортогональны?

Там где у тебя generic типы - там у тебя статическая диспатчеризация

fn print_smth<T: Display>(v: T) {...}

fn print_smth(v: impl Display) {...}

Оба случая идентичны, и тут у тебя в рантайме никогда не будет vtable

В плюсах аналогом будет

template<typename T>
void print_smth(const T& v) {...}

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

fn print_smth(v: &dyn Display) {...}

А вот тут уже будет vtable, и в плюсах код выглядит так:

interface Display {...}

void print_smth(Display& v) {...}

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

В плюсах у тебя конечно vtable всегда с собой есть, потому что не факт что девиртуализация в оптимизаторе gcc/llvm сработает, однако в Rust это не так, и vtable есть только тогда, когда она используется
Более того, в Rust у тебя инстансы структур с собой vtable не имеют, когда требуется vtable - оно передаётся вместе со структурой в fat pointerе

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #206 Ответы: #218

209. Сообщение от morphe (?), 03-Июл-25, 00:26   +/
> Этой истории не первый год. Например, два года назад определенные попытки предпринимались joshtriplett в виде эксперимента с crabi https://github.com/rust-lang/rfcs/pull/3470
> Но воз и ныне там (

Только это совсем не то, про что ты говоришь
Оно не избавляет от необходимости явно описывать внешние функции, потенциальное crABI не будет дефолтом
Это лишь идея про то, что основные структуры в языке должны иметь какое-то стандартное представление, чтобы их можно было передавать через FFI boundary не конвертируя туда-сюда

Однако это всё рушится о то, что Rust намеренно не стабилизирует такие вещи, чтобы можно было всё оптимизировать, и это самое crABI всё равно требует данные туда-сюда копировать, чтобы структуры были совместимы с вещами вроде niche optimizations, и это "ABI" по итогу будет лишь удобным способом такие конверсии автоматизировать.
И зачем оно в таком случае нужно, если есть условный bindgen, который уже умеет это автоматизировать, но при этом не требует создавать некий crABI и поддерживать его на уровне языка?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #206 Ответы: #220

210. Сообщение от Я (??), 03-Июл-25, 00:42   +1 +/
А оно с маршрутами без рута как то не так работает :-/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #87

211. Сообщение от ptr (ok), 03-Июл-25, 00:46   +/
> Я сомневаюсь, что легко будет найти человека, который будет использовать все эти 2 Тб за раз.

Спасибо, что доказали, что Вы демогог или слишком глупы, что отличить 5% от 100%:

>>>скачивать по сотне гигабайт кем-то пересобранных всех своих приложений

На том дискуссию можно считать завершённой )

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #207

212. Сообщение от Lamerok (?), 03-Июл-25, 03:29   +/
для sudo уже нужно отдельную группу создавать, кому им можно пользоваться)
Ответить | Правка | Наверх | Cообщить модератору

213. Сообщение от олег (?), 03-Июл-25, 08:37   +/
Да ты насмешил. Ты видел код на расте, его синтакасис? Человек, у которого привиты хорошие практики, на расте писать не будет. Без обид. Это база.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #169 Ответы: #219

214. Сообщение от олег (?), 03-Июл-25, 08:38   +/
Блин, ну ты новость-то почитай прежде чем комментарии писать, тролль.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

215. Сообщение от User (??), 03-Июл-25, 09:07   –1 +/
Не, ну если у вас количество админов равно количеству серверов, каждый из них "админ ВСЕГО", сколько-нибудь централизованного управления этим "всем" нет и не предвидится - то, наверное, можно и так. Но ЗАЧЕМ?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #186

218. Сообщение от ptr (ok), 03-Июл-25, 09:45   +/
>> Но есть виртуальные таблицы и дженерики.
> Но ты же понимаешь что эти вещи ортогональны?

В текущей реализации.

> Там где у тебя generic типы - там у тебя статическая диспатчеризация

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

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

Опять у Вас проблемы со чтением:
>> я веду речь не о шаблонах, а об аналоге Itanium ABI для Rust

Но в C++ есть наследование и перегрузки, что позволяет весьма гибко обходиться без шаблонов. А в Rust этого нет.
Поэтому опять прошу Ваc научиться читать:
>> с развитым RTTI можно поддерживать не только POD типы, но и структуры и перечисления, налагая определенные требования на присутствие только некоторых полей или типов в них.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #208 Ответы: #226

219. Сообщение от Соль земли2 (?), 03-Июл-25, 09:49   +/
Да, видел код. Мне понравилось. Никто не приводил на opennet примера, поэтому предположу, что им "рыбки" не понравились. А вообще там столько сахара и других удобств, что синтаксис простителен.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #213

220. Сообщение от ptr (ok), 03-Июл-25, 10:07   +/
> Только это совсем не то, про что ты говоришь

Эти вопросы подняты тут https://github.com/rust-lang/rust/issues/111423

> Оно не избавляет от необходимости явно описывать внешние функции, потенциальное crABI не
> будет дефолтом

crabi даже как экспериментальная возможность пока не принято. А по уму, нужно несколько разных подходов и сравнение между ними, прежде чем один из них станет не экспериментальным.

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

Но цена этого - фактический отказ от встроенной в язык безопасности работы с памятью при динамическом связывании. Даже в Redox пришлось для этого изобретать костыли через C ABI.

> И зачем оно в таком случае нужно

Например для того, чтобы тот же sudo в coreutils-rs могли работать с PAM/NSS, написанными на Rust, без утери контроля компилятором над безопасностью при работе с памятью на стыке C ABI.
И само собой, без требования перекомпиляции всего мира одной конкретной версией rustc.
Если Вы не понимаете, зачем нужен стабильный Rust ABI, то попробуйте поработать с кодовой базой размером хотя бы свыше гигабайта.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #209 Ответы: #224

221. Сообщение от Аноним (221), 03-Июл-25, 10:12   +2 +/
Неуловимого Джо вы начинаете видеть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

222. Сообщение от Loki13 (ok), 03-Июл-25, 10:14   +/
Ну как минимум sudo emerge ... - систему обновляю, sudo blkid - посмотреть какие диски по каким именам\уидам, sudo cp ... скопировать свежесобранное ядро на boot раздел или ебилд скопировать для редактирования в /usr/local/portage. Это то что нужно было за последние 2 недели. Иногда sudo -E gparted - разделы поглядеть на флешке\диске. Ну и sudo systemctl restart servicename.service периодически.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #126

223. Сообщение от Аноним (223), 03-Июл-25, 10:46   +/
и как же снятие sticky bit добавляет вам безопасности ? почитали бы маны прежде чем чушь писать....
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #195 Ответы: #234

224. Сообщение от morphe (?), 03-Июл-25, 12:33   +/
> Эти вопросы подняты тут https://github.com/rust-lang/rust/issues/111423

Какие вопросы? Я говорю про то что crabi не решает и половины проблем со стабильным abi, это лишь прослойка чтобы вообще все типы не превращать в C-совместимые

> crabi даже как экспериментальная возможность пока не принято. А по уму, нужно
> несколько разных подходов и сравнение между ними, прежде чем один из
> них станет не экспериментальным.

Есть несколько проектов которые на макросах реализуют безопасный FFI как с Rust, так и с другими языками, зачем подобное встраивать в язык?

> Но цена этого - фактический отказ от встроенной в язык безопасности работы
> с памятью при динамическом связывании. Даже в Redox пришлось для этого
> изобретать костыли через C ABI.

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

> Например для того, чтобы тот же sudo в coreutils-rs могли работать с
> PAM/NSS, написанными на Rust, без утери контроля компилятором над безопасностью при
> работе с памятью на стыке C ABI.

У Rust вся сила в абстракциях, никто тебе не мешает использовать C ABI, но в безопасной обёртке. Да можно даже по обе стороны ffi boundary иметь zero-copy сериализацию/десериализацию, для передачи данных этого более чем хватит, и порвать такой кондом не выйдет, и при правильной реализации потреблять больше чем "правильный" ffi оно не будет.
А также это будет реально безопасно, потому что как ты собираешься иначе гарантировать что у тебя по обе стороны ffi boundary никто не менял порядок полей в структуре, и при проходе через ABI она не превратилась в тыкву?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #220 Ответы: #235

225. Сообщение от RM (ok), 03-Июл-25, 12:35   +/
за тебя просто Убунту все уже сделала.
Зоркий глаз и не заметил, что у него автоапдейт включен и новый пакет уже сам приехал.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #22

226. Сообщение от morphe (?), 03-Июл-25, 12:40   +/
> Но в C++ есть наследование и перегрузки, что позволяет весьма гибко обходиться без шаблонов. А в Rust этого нет.

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

> В текущей реализации.

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

Вместо этого кто хочет может реализовать свой механизм, посмотри на bevy например, у него и рефлексия, и UUIDы для типов, и всё прочее есть

Без всякой поддержки со стороны языка.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #218 Ответы: #236

227. Сообщение от perasperos (?), 03-Июл-25, 12:55   +/
1. админ пароля root знать не должен, ssh: заходит по ключу, а не паролю, sudo-ится без пароля NOPASSWD

2. с уходом админа -- вычищается учетка или его ключ

3. пароль root-а меняется Ansible-ом или puppet-ом на всех хостах переодически или по необходимости.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #160 Ответы: #228

228. Сообщение от User (??), 03-Июл-25, 13:24   +/
> 1. админ пароля root знать не должен, ssh: заходит по ключу, а
> не паролю, sudo-ится без пароля NOPASSWD

Нуэээ да - не должен. Его как сгенерякали, так вот распечатали на бумажечке, сунули ту бумажечку в конвертик и отдали в ИБэ с наказом "не открывать до страшного суда или следующего аудита системы" - в зависимости от того, что произойдет раньше.
И нет, за NOPASSWD ты с этими самыми Бэ - не договоришься (В данном случае даже правильно).

> 2. с уходом админа -- вычищается учетка или его ключ

Ненене. Это вот вы сами. Обычно машина - в домене, открытый ключ вот в расширенных аттрибутах схемы, а на машине есть одно большое НИЧЕГО. Событие увольнения из кадровой системы триггерит отключение УЗ а в AD и, собственно, усё.
В случае когда "совсем-все-пропало-шеф! Сети-нет-AD-нет-налоговая-у-дверей!" Вместе с бланком объяснительной из конвертика достается der parol root'а - и все заверте...

> 3. пароль root-а меняется Ansible-ом или puppet-ом на всех хостах переодически или
> по необходимости.

Не-не. Тут штука в том, что он на всех хостах вот прям совсем-совсем разный и его примерно "нигде" (Кроме как в конверте, в роли которого может оказаться и какой-нибудь bitwarden ИБ) нет. Варианты с регулярной заменой в рамках "регламента эксплуатации" я видел - но больше в том самом "регламенте" - проще контролить события входа в систему от соответствующего пользователя на уровне SIEM чем упражняться в этом вот кувыркании на регулярной основе.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #227 Ответы: #230

229. Сообщение от нах. (?), 03-Июл-25, 13:37   +/
> Изначально вопрос был chroot, который я вообще не заметил в скрипте

а он там - есть.

(chroot не меняет cwd. Учитывая что этот дятел забыл про nsswitch - он наверное и про это тоже забыл. )

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #149

230. Сообщение от нах. (?), 03-Июл-25, 13:53   +/
> Ненене. Это вот вы сами. Обычно машина - в домене

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

Про валяющиеся по всей fs keytab'ы при таком подходе - уже и не будем.

> 3. пароль root-а меняется Ansible-ом или puppet-ом на всех хостах переодически или
> по необходимости.

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

> Вместе с бланком объяснительной из конвертика достается der parol root'а

за это время не то что дверь вынесут, а и половину срока отсидишь

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #228 Ответы: #232

231. Сообщение от Аноним (231), 03-Июл-25, 14:04   –1 +/
Конечно, проще. Что же может быть проще, чем правило "разреши этому бинарнику ВСЁ".
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #197 Ответы: #233

232. Сообщение от User (??), 03-Июл-25, 14:13   +/
>> Ненене. Это вот вы сами. Обычно машина - в домене
> сеть отвалилась после обновления фирмварей - исправить ничего нельзя, ведь зайти на
> хост теперь невозможно.

"В случае когда "совсем-все-пропало-шеф! Сети-нет-AD-нет-налоговая-у-дверей!" Вместе с бланком объяснительной из конвертика достается der parol root'а - и все заверте..."(Ц)

> Про валяющиеся по всей fs keytab'ы при таком подходе - уже и
> не будем.

Ээээ... зачем кейтаб? Какой кейтаб? Неэээ, керберос мы не будем - проблемное оно в линуксовом изводе примерно со всех сторон.
AuthorizedKeysCommand, который этот самый key из LDAP'а налету дергает вполне себе работает - даже можно сказать "in какой-никакой scale"

>> 3. пароль root-а меняется Ansible-ом или puppet-ом на всех хостах переодически или
>> по необходимости.
> вот это обязательно, да. А сам файлик который его меняет вместе со
> всеми паролями - не забудьте еще закомитить и запушить в гитляп
> и гитшляп, для надежности. Все так делают!

Некоторые даже джва раза, ага.

>> Вместе с бланком объяснительной из конвертика достается der parol root'а
> за это время не то что дверь вынесут, а и половину срока
> отсидишь

Тут главное "объяснительная", отсутствие у тебя регулярного доступа к этому der parol - ну и процедура обязательной смены после каждого доступа к. А будет это у тебя пароль на бумажке в конвертике у ИБ, аппаратный ключик в сейфе или вот вовсе какой vault - дело второе.

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

Ну вот как раз в случае "аварии" когда нужен именно "root", а не его права - никаких "внешних"-то и нет.


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #230

233. Сообщение от morphe (?), 03-Июл-25, 17:39   +/
> Конечно, проще. Что же может быть проще, чем правило "разреши этому бинарнику
> ВСЁ".

run0 по dbus идёт в systemd и форвардит запросы polkit

Он не занимается повышением привилегий, он через systemd создаёт отдельный pty в отдельном сервисе и форвардит его тебе

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #231 Ответы: #237

234. Сообщение от Аноним (234), 03-Июл-25, 17:39   +/
Легко и непринужденно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #223

235. Сообщение от ptr (ok), 03-Июл-25, 17:55   +/
>> Эти вопросы подняты тут https://github.com/rust-lang/rust/issues/111423
> Какие вопросы?

А Вы всё же постарайтесь не быть чукчей-писателем и почитать то, что написано по ссылке.

> Я говорю про то что crabi не решает и половины

В первых пяти PR - да.

> Есть несколько проектов которые на макросах реализуют безопасный FFI как с Rust,
> так и с другими языками, зачем подобное встраивать в язык?

Вы уж простите, но такой "безопасный" FFI реализуем вообще на любом языке. В том числе на C/C++. И тогда возникает резонный вопрос, а зачем тогда нужен Rust )))

"Безопасный" в кавычках, потому что на стороне динамически связываемого модуля без развитого RTTI нет никакой возможности определить, насколько корректные параметры пришли на вход через C ABI.
Если на пальцах, как в динамически связываемом модуле узнать, что вместо
enum DeviceAddr {
    AD0,
    AD1,
}
передан
enum DeviceAddr {
    AD0,
    AD1,
    AD2,
}
?

Естественно, я хочу, чтобы динамически связываемый модуль, ничего не знающий о AD2, успешно работал с параметром типа DeviceAddr, когда он принимает значения только AD0 и AD1. Но возвращал ошибку, если вдруг обнаруживал в enum неизвестный ему подтип. Отдельный вопрос с переменным количеством параметров.
Или мы опять приходим к необходимости перекомпиляции и разворачивании кода всей инфраструктуры, лишаясь преимуществ динамического связывания.
Естественно, на фазе прототипирования подобные проекты реализуются вручную, дублируя метаданные, которые уже известны компилятору. Это как слоты, сигналы и компилятор метаданых в Qt, которые были необходиимы в отсутствии стандарта C++ ABI. Вот только на стандартное средство взаимодействия, применимое в любых проектах, оно ну никак не тянет.

> ffi boundary иметь zero-copy сериализацию/десериализацию, для передачи данных этого более
> чем хватит, и порвать такой кондом не выйдет, и при правильной
> реализации потреблять больше чем "правильный" ffi оно не будет.

Не надо мне D-Bus рекламировать. Он, конечно, хорош, но потребляет явно больше, чем ABI. Даже MS COM он по производительности проигрывает. Для десктопных задач он применим, но для высоконагруженных систем - уже нет.

> как ты собираешься иначе
> гарантировать что у тебя по обе стороны ffi boundary никто не
> менял порядок полей в структуре, и при проходе через ABI она
> не превратилась в тыкву?

RTTI

>> Если Вы не понимаете, зачем нужен стабильный Rust ABI, то попробуйте поработать
>> с кодовой базой размером хотя бы свыше гигабайта.
> Ежедневно работаю
> Гигабайта исходников конечно нет, но 200мбайт найдётся, если зависимости не считать, зачем
> нужно crabi мне не понятно.

Только не уточнили, что код на Rust из этого занимает пару мегабайт? Или речь о сотне мелких проектов?
Даже сотня мегабайт кода без динамического связывания не взлетит в продуктиве. А использование кастомного динамического связывания, как в Redox, превращает проект в динозавра совместимого только с самим собой. И здравствуй nostd.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #224 Ответы: #244

236. Сообщение от ptr (ok), 03-Июл-25, 18:14   +/
> В Rust нет необходимости обходиться без генерик типов, и все ими везде
> пользуются

Вот именно. Поэтому отказ от дженериков при динамическом связывание на решение проблемы никак не тянет.

>> В текущей реализации.
> Нет, вообще нет. Даже задача сравнения идентичности двух типов нетривиальная, TypeId в
> Rust не работает стабильно в присутствии нескольких крейтов по разному инстанцирующих
> один тип, и это не та проблема которую кто-то планирует решать
> в языке, потому что это чисто архитектурно требует больших издержек.

Как раз решать пытаются так или иначе. Ну и ссылаться на размер издержек можно для локального проекта, но уж никак не для повсеместно используемого компилятора.

> Вместо этого кто хочет может реализовать свой механизм

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

> посмотри на bevy например,
> у него и рефлексия, и UUIDы для типов, и всё прочее
> есть

Что-то не вижу, как подключить к нему динамически связываемый модуль о котором он не знал ничего на этапе компиляции. Это возвращаясь к топку и PAM/NSS, в случае реализации их на Rust.
Ну и на стандарт он никак не тянет. Не предлагаете же Вы его затаскивать, например, в аналог OpenWRT на Rust, исключительно в целях поддержки динамического связывания?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #226

237. Сообщение от Аноним (237), 03-Июл-25, 19:23   +/
> Он не занимается повышением привилегий

А я где-то утверждал обратное?

> форвардит запросы polkit

У которого в правилах разрешить можно только всё или ничего. Потому что механизм передачи параметров запуска программы от systemd к polkit нормально не продуман. И любой неправильно понятый systemd-ой параметр - потенциальная брешь. Да что там, даже имя программы-сервиса зависит от ревизии луны.

> systemd создаёт отдельный pty в отдельном сервисе

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

Вот, кстати, тут все сокрушаются, "какой sudo сложный комбайн". А в связке systemd + dbus + polkit никого сложность не смущает? Напомнить как убийство polkit-agent-а приводило к полному рут-доступу (через polkitd) любого приложения с включенным gvfs-admin? А сколько ещё сюрпризов таит его js-движок для разбора правил, ммм..

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #233 Ответы: #245, #246

238. Сообщение от Аноним (237), 03-Июл-25, 19:31   +/
> Ну я начал планомерно выпиливать после sudoedit.

Правильно, даёшь паникёрство! С проверенных программ с исправленными уязвимостями все срочно переходим на неуловимых джо с неисправленными/ненайденными уязвимостями.
А для редактирования конфигов ничего лучше Visual Studio из-под рута ещё не придумали.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #240

239. Сообщение от Аноним (237), 03-Июл-25, 19:49   +/
> все можно выполнить в рутовой консоли.

И получить `rm -rf /` из-за ошибки в шелл-комплишн. Или скрипте/плагине текстового редактора. Или даже в собственноручно набранной команде (нулл-глоб или забытые кавычки вокруг параметра с пробелом). И т.д. и т.п.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #76

240. Сообщение от нах. (?), 03-Июл-25, 20:42   +/
> С проверенных программ с исправленными уязвимостями

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #238

243. Сообщение от Аноним (243), 03-Июл-25, 22:32   –1 +/
до некоторых линуксоидов вдруг стало доходить, что кое-как написанный софт толпой энтузиастов не становится безопасным просто потому, что его код открыт. А как же "опенсорс - защита от бэкдоров и багов, ведь их тут же увидят и исправят"? Это что, получается, что опенсорс никак не влияет, ведь никто не читает этот код? =))
Ответить | Правка | Наверх | Cообщить модератору

244. Сообщение от morphe (?), 03-Июл-25, 23:36   +/
>>> Эти вопросы подняты тут https://github.com/rust-lang/rust/issues/111423
>> Какие вопросы?
> А Вы всё же постарайтесь не быть чукчей-писателем и почитать то, что
> написано по ссылке.
>> Я говорю про то что crabi не решает и половины
> В первых пяти PR - да.

Вообще не решает, всё что добавляет crabi вполне решается и другими средствами

> Вы уж простите, но такой "безопасный" FFI реализуем вообще на любом языке.
> В том числе на C/C++. И тогда возникает резонный вопрос, а
> зачем тогда нужен Rust )))

Потому что FFI это малая часть любой программы, не везде нужны плагины

> Но возвращал ошибку, если вдруг обнаруживал в enum
> неизвестный ему подтип.

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

> Не надо мне D-Bus рекламировать. Он, конечно, хорош, но потребляет явно больше,
> чем ABI. Даже MS COM он по производительности проигрывает. Для десктопных
> задач он применим, но для высоконагруженных систем - уже нет.

D-Bus не zero-copy, и он не через ffi boundary работает а через сокеты, естественно он медленнее
COM с его IDL по ближе (не работал с ним), но всё ещё не то. Я скорее про Cap'n Proto/Flat Buffers/прочее
ABI это по сути и есть zero-copy сериализация/десериализация, просто в данной сериализации у тебя очень мало поддерживаемых типов

> Только не уточнили, что код на Rust из этого занимает пару мегабайт?
> Или речь о сотне мелких проектов?
> Даже сотня мегабайт кода без динамического связывания не взлетит в продуктиве.

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

Моя кодбаза проприетарная, однако опенсорс тоже есть подобных масштабов, и успешно живёт, вот как пример - https://github.com/paritytech/polkadot-sdk, да даже сам Rust динамическую линковку использует крайне условно (rustc-driver работает используя обычное Rust ABI)

Зачем в одной кодбазе использовать несколько версий компилятора вообще? Или ты говоришь про монорепы, в которых гугл и прочие себе сами кучу проблем создают?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #235 Ответы: #249

245. Сообщение от morphe (?), 04-Июл-25, 03:28   +/
> У которого в правилах разрешить можно только всё или ничего. Потому что механизм передачи параметров запуска программы от systemd к polkit нормально не продуман. И любой неправильно понятый systemd-ой параметр - потенциальная брешь. Да что там, даже имя программы-сервиса зависит от ревизии луны.

Если речь про white-list команд которые можно дёргать, то sudo тут не лучше. Сложно сказать что такая-то утилита точно не дырявая, и её можно запускать через sudo не боясь что юзер вдруг даст ей ввод, который утилита неправильно распарсит и исполнит что угодно
В любом случае нужно прописывать какие-то ограничения для работы запущенной программы, и systemd/PAM с этим справляются лучше. Ну собственно и используя PAM можно настроить о чём тебя polkit спросит, как программу изолирует, и какие права сбросит.

> Вот, кстати, тут все сокрушаются, "какой sudo сложный комбайн". А в связке
> systemd + dbus + polkit никого сложность не смущает?

Баги в этой связке намного проще найти и исправить чем в программе которая запускается от рута (suid), парсит неопределённое количество конфигов своего собственного кривоватого формата, затем грузит непонятные библиотеки из системы (NSS, PAM опять же и прочее), затем проверяет все доступы, и если все доступы совпали передаёт управление юзеру

Поверхность атаки как раз таки ниже, потому что та связка изначально имеет ко всему доступы и загружает всё что нужно при старте системы
Более того, если используется демон systemd-userdb, то все проверки прав доступа выполняются в отдельном процессе, и даже если вдруг юзер чот и сможет проэксплуатировать - он это проэксплуатирует в удалённом процессе без прав, и нужно будет ещё что-то поднимать от основного юзера чтобы та уязвимость тебе чего-то дала

> Напомнить как
> убийство polkit-agent-а приводило к полному рут-доступу (через polkitd) любого приложения
> с включенным gvfs-admin?

Честно говоря звучит как неправильные политики/баг в gvfs, можно ссылку?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #237

246. Сообщение от morphe (?), 04-Июл-25, 03:29   +/
> Угу, генерирует что-то налету. Я бы даже рад сам написать сервис и ограничить, но xpен угадаешь его смямлингенерированное имя.

Btw, если тебе надо systemd-run указать своё желаемое имя, то там есть --unit аргумент)

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #237

247. Сообщение от tester (??), 04-Июл-25, 08:41   +/
Когда уже появится systemd-sudo?!
Ответить | Правка | Наверх | Cообщить модератору

249. Сообщение от ptr (ok), 04-Июл-25, 13:11   +/
>> А Вы всё же постарайтесь не быть чукчей-писателем и почитать то, что
> Вообще не решает, всё что добавляет crabi вполне решается и другими средствами

Прочитайте внимательно всё же по ссылке. Особенно пункт про дженерики.

>> Вы уж простите, но такой "безопасный" FFI реализуем вообще на любом языке.
>> В том числе на C/C++. И тогда возникает резонный вопрос, а
>> зачем тогда нужен Rust )))
> Потому что FFI это малая часть любой программы, не везде нужны плагины

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

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

Itanium ABI без проблем позволяет работать с объектами унаследованных и перегруженных классов.

>> Не надо мне D-Bus рекламировать. Он, конечно, хорош, но потребляет явно больше,
>> чем ABI. Даже MS COM он по производительности проигрывает. Для десктопных
>> задач он применим, но для высоконагруженных систем - уже нет.
> ABI это по сути и есть zero-copy сериализация/десериализация, просто в данной сериализации
> у тебя очень мало поддерживаемых типов

Вы вообще знакомы с Itanium ABI?

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

Ну не верю. И время сборки тут не столь критично, сколько время на разворачивание на множество инстанцов или POD-ов. Если при динамическом связывании патчи почти всегда накатываются вообще без простоя системы, то без него доступность системы начинает очень сильно страдать.
Я уже молчу о том, на хостах k8s без динамического связывания потребление памяти возрастает в несколько раз, если не на порядок. А хост с 256ГБ RAM и хост с 2ТБ RAM - уже очень различаются по стоимости.

> Зачем в одной кодбазе использовать несколько версий компилятора вообще?

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

Если на пальцах, возвращаясь к теме топика. Что проще, исправив ошибку в sudo, распростанить только sudo, или распространять всю систему со всеми установленными в ней приложениями, чтобы всё было собрано одной версией компилятора?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #244

250. Сообщение от RM (ok), 04-Июл-25, 13:58   +/
"У меня все работает (Ц)"
На бубунте 24.04 скрипт из новости без изменений отрабатывает на 5+.

Там в скрипте есть одна "ненужная" строка, без нее тоже работает на бубунте.
Есть подозрение, что на других системах, возможно, надо еще одну строчку добавить к той, лишней, что бы работал не упомянутый в sudoers пользователь. Но я не рыл так сильно.

П.С. По моим наблюдениям, полностью "боевые" эксплоиты на паблик не выкладывают, PoCи всегда имеют неточности, надо допиливать напильником.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #190

252. Сообщение от Ананимус (?), 04-Июл-25, 15:01   +/
>> Да, doas рулит, а для рядовых задач и вовсе хватает su.
> Как бы это сказать... su _принципиально_ не подходит для задач, отличных от
> "однопользовательских локалхостов" по причине невозможности гранулярного управления
> полномочиями и отсутствию какого-либо вменяемого аудита.
> doas в этом плане несколько лучше - но малопригодный для автоматизированной работы
> синтаксис или хотя бы отсутствие возможности заинклудить свои правила из отдельного
> файлика в conf.d изрядно портят впечатления.

Есть ли разница создавать ansible'ом два файла или писать через шаблон в один? Все равно руками никто серверы не конфигурирует уже много лет.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #155 Ответы: #253

253. Сообщение от User (??), 04-Июл-25, 15:13   +/
>>> Да, doas рулит, а для рядовых задач и вовсе хватает su.
>> Как бы это сказать... su _принципиально_ не подходит для задач, отличных от
>> "однопользовательских локалхостов" по причине невозможности гранулярного управления
>> полномочиями и отсутствию какого-либо вменяемого аудита.
>> doas в этом плане несколько лучше - но малопригодный для автоматизированной работы
>> синтаксис или хотя бы отсутствие возможности заинклудить свои правила из отдельного
>> файлика в conf.d изрядно портят впечатления.
> Есть ли разница создавать ansible'ом два файла или писать через шаблон в
> один? Все равно руками никто серверы не конфигурирует уже много лет.

Ну, как? Одно дело атомарная операция вида "добавил готовый файлик с правами на группу - - удалил файлик", другое - работа с изрядно кривым\косым синтаксисом в котором хрен пойми, сколько никак и ничем не отличающихся друг от друга опций и аргументов.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #252

254. Сообщение от andrew (??), 04-Июл-25, 15:54   +/
нужное создается в /tmp/sudo.stage.... и chroot из sudo на /tmp/sudo.stage....
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру