LINUX.ORG.RU
ФорумTalks

НЕ ЖДАЛИ АХАХАХА Леннарт Поттеринг СНОВА ПЕРЕДАЁТ ПРИВЕТ

 , ,


0

5

Леннарт Поттеринг представил утилиту run0, позволяющую выполнять процессы под идентификаторами других пользователей. Новая утилита позиционируется как более безопасная замена программы sudo, реализованная в форме надстройки над командой systemd-run и позволяющая избавиться от применения исполняемого файла с флагом SUID. Утилита run0 включена в состав выпуска systemd 256, который находится на стадии кандидата в релизы.

И как вишенка на торте:

Для авторизации и определения возможностей пользователя в run0 используется Polkit. Классический язык описания правил (/etc/sudoers), применяемый в sudo, не поддерживается.

https://www.opennet.ru/opennews/art.shtml?num=61088

★★★★★

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

Ответ на: комментарий от hateWin

Так чем это хуже PAM?

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

Лучше.

Нет.

А как ты раздашь нужные привилегии? В обоих случаях без тьюринг-полноты трудно

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

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

Если ты посмотришь на типичные правила Polkit, то там у тебя тупо идёт набор проверок насчёт группы и прочих атрибутов юзера и объекта, к которому запрашивается доступ. Под это подогнать DSL сможешь даже третьекурсник. Но мы все знаем, что клоуны из Red Hat тупее третьекурсника и просто не могут, поэтому и спроса с них особого нет.

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

Меня вроде бы никто не обязывал разговаривать с агрессивным быдлом :-)

А что ты там себе придумал — это уже не моё дело.

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

Это твоё дело, с кем кто там тебя чо обязывал или не обязывал. Я лишь описываю наблюдаемое извне поведение объекта.

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

А как ты раздашь нужные привилегии? В обоих случаях без тьюринг-полноты трудно

Очень сложная задача, сложнее, чем SELinux… или нет.

wandrien ★★
()

Походу за Линь взялись по-взрослому...

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

Там есть вот такое:

The spawn() method spawns an external helper identified by the argument vector argv and waits for it to terminate. If an error occurs or the helper doesn't exit normally with exit code 0, an exception is thrown. If the helper does not exit within 10 seconds, it is killed. Otherwise, the program's standard output is returned as a string. The spawn() method should be used sparingly as helpers may take a very long or indeterminate amount of time to complete and no other authorization check can be handled while the helper is running. Note that the spawned programs will run as the unprivileged polkitd system user.

Вкорячить тюринг-полный ЯП, чтобы делать fork-exec на другой бинарник – это сильно…

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

Вкорячить тюринг-полный ЯП, чтобы делать fork-exec на другой бинарник – это сильно…

Знаешь, мои ожидания по части софта из Red Hat настолько низки, что я даже не удивлён. Навскидку, я не припомню вообще ни одной программы от них, которая не была бы полным днищеговном из коробки и не требовала гигантского напильника через кучу срачей, страданий и боли. Даже тот же systemd был полным хламом, когда его пытались всем присунуть, и лишь через какое-то время его стало возможно использовать.

Red Hat – какая-то абсолютно проклятая контора, которая просто не может. Вообще не может. К слюниксу у них подход типичного днищеаутсорсера, историями о которых полнится сайт ebanoe.it: основная цель – сделать быстро и хоть как-нибудь, а как оно будет работать через три года и как это будет с экосистемой вместе жить – просто посрать.

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

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

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

Осталось вспомнить еще, когда же это было…

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

То есть они туда вкорячили свой js-фрейворк, ради чего?

Ради бесплатной путевки в кащенко

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

Прописывать sudo прямо в скриптах – это изврат. Судо нужен для интерактивных команд.

ЧАВО ?

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

Red Hat – какая-то абсолютно проклятая контора, которая просто не может. Вообще не может. К слюниксу у них подход типичного днищеаутсорсера, историями о которых полнится сайт ebanoe.it: основная цель – сделать быстро и хоть как-нибудь, а как оно будет работать через три года и как это будет с экосистемой вместе жить – просто посрать.

лучше было бы если бы так. Но у них задача не просто внедрить, но еще и завязать как можно больше всего на зависимости от gnome, glibc, dbus, «стандартов» freedesktop и прочего подобного.

Собственно что мы и видим в данном случае, sudo без зависимости от dbus хотят заменить на нечто С такой зависимостью. При том что Леня Потный сам упомянул про doas - это проект на от силы пару тысяч строк кода, где просто нечего ломать. Чем там Лене не понравился suid - см. выше.

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

Я думаю, что чуваки из Red Hat пилят этакую Red Hat OS, которая чисто случайно включает в себя ядро линукс, а на существование остальных дистров и как они будут в этом говне разбираться им просто плевать. Я так же думаю, что у Red Hat есть традиция скупать разработчиков популярных проектов, как это вышло с GNOME. А там, где купить не получилось, они выкатывают свой «улучшенный» аналог.

А на кооперацию с остальным сообществом, если не считать пару жирных мегакорпораций, Red Hat вообще не настроен.

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

на существование остальных дистров и как они будут в этом говне разбираться им просто плевать

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

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

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

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

Окей. Если разрабы абстрактного дистра VasyaOS хотят поставлять гнум, то этим разрабам VasyaOS придётся разбираться во всём том говне, которое воротят чуваки из RH. Так понятнее?

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

Это у них полным ходом. Но я не про них.

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

Если разрабы абстрактного дистра VasyaOS

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

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

Окей. Если разрабы абстрактного дистра VasyaOS хотят поставлять гнум, то этим разрабам VasyaOS придётся разбираться во всём том говне, которое воротят чуваки из RH. Так понятнее?

Это уже вопрос к разрабам ВасейОС, почему им неймётся поставлять Гном.

Red Hat любит делать говно, а сообщество это говно любит есть.

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

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

Ну и потом, пользователи этих дистров – потенциальные клиенты Red Hat.

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

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

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

Я бы вообще вопрос иначе поставил: а какие крутые архитектурные фишки придумала Red Hat самостоятельно?

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

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

Так на баше и костылят. Просто в ExecStart* прописывают баш-скрипт, когда возможностей юнита не хватает. У меня под рукой сейчас только одна машина с systemd, на которой софта почти нет, но даже там такое:

└─> grep -RE '\.sh' /etc/systemd/* /usr/lib/systemd/* 2>/dev/null | wc -l
22

shell-script ★★★★★
()
Ответ на: комментарий от wandrien

Мимо? У RedHat свой k8s есть, на минуточку.
OpenShift Container Platform. Причем существовал он еще за пару лет до появления докера, и был основан на катриджах. Году в 2015, когда стало ясно, что выстрелил k8s, они забросили систему катриджей и перевели OpenShift 3.x на k8s. А в OpenShift 4.x избавились от зависимости от докера.

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

OpenShift Container Platform. Причем существовал он еще за пару лет до появления докера

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

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

Ну, тут не совсем точно. Контейнеры активно использовались и до докера. Во всяком случае, я использовал. Openvz(нужно было ставить стороннее ядро) и lxc были задолго до докера и вполне себе работали. Докер просто пиарить начали сильно(как-то внезапно появилось огромное множество статей и howto про него).

shell-script ★★★★★
()
Ответ на: комментарий от wandrien

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

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

Не местячковым, а энтерпрайзным.

Контейнеры в массах нужны разве что ламеру, чтобы он дал команду «docker run postgresql», и можно сразу говнокодить SQL-запросы. Тем, кто не может/не хочет заниматься установкой и настройкой БД, кому пофиг на то, какой там приедет образ - дырявый с уявзимостями и настроенный абы как.

А в энтерпрайзе это противопоказано. Там вообще запрещен докер на серверах, и контейнеры разрешены только в кластерах OpenShift. Чтобы можно было урезать права и загрутить гайки.

И пофиг, что там в потрохах OpenShift - картриджи, k8s+докер, k8s+crio, или что-то еще.

bigbit ★★★★★
()

позволяющая избавиться от применения исполняемого файла с флагом SUID

А у polkit/pkexec suid уже убрали?

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

Оооо.. ты там с Алексом дискутировал. Один из моих любимых энтерпрайзных жаба-шизоидов тут :3

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

А что они при этом туда еще SpiderMonkey вкорячили, то вообще получается чудесное сочетание хакер-смузихлёб.

Ага. Хорошо, что в кто-то адекватный в генте добавил:

sys-auth/polkit:duktape - Use dev-lang/duktape instead of dev-lang/spidermonkey as JavaScript engine

Loki13 ★★★★★
()

Странно что никто не продолжил классику:

«А теперь я сломаю это вашу суду». (или что он там очередной раз поломал).

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

Леннарт Поттеринг представил утилиту

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

Интересно,кому и сколько денег занёс Поттеринг чтобы его «нововведения» мгновенно попадали в апстрим ведущих дистрибутивов?

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

watchcat382
()
Ответ на: комментарий от LINUX-ORG-RU

Патч для su/sudo предложить можно было, те бы просто добавили ключик типа --nosuid и после логина под пользователя ему бы не было доступно ничего с suid и всё.

Так проблема вроде в том, что /usr/bin/sudo и /usr/bin/su помечены suid битом. Как аргумент к ним это бы исправил?

А в терминале нужно будет писать на XML и только через экранную клавиатуру.

Хорошо бы если ввод/вывод мог быть ОО, вместо текста.

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

Как аргумент к ним это бы исправил?

По отношению к su/sudo никак, но в процессе логина формировалась бы политика что вот как только этот $USER вошёл в свою сессию все suid биты для него сбрасываются и всё, хоть на голове пусть прыгает, ядерный механизм ничего ему и ничего запущенного от него не даст сделать. run0 тоже не святым духом логин делает, пусть не сам, а передаёт эту процедурку в свою мать/бать systemd, ну переложили ответственность на другие плечи, ну и что вектор атаки (если он подразумевался) просто переехал из А в B. Но ладно, повторюсь, написал и написал. Дублирую вопрос, к админам, если им нужно пустить юзера в сессию или запустить от некого юзера что либо, то что не было механизма, заранее прописать что для вот этого /home/vasya нельзя ничего кроме того что можно и так далее. Мне кажется что всё это уже есть и уже **ть лет.

Опять же смысл в run0 будет и будет только тогда когда в системе вообще не будет sudo/su это как высокие ворота из стали, а по бокам забора то нету =) Ну если страх перед тем что в утилите логина suid стоит. Ну не стоит он в run0 зато стоит ещё где-то.

Не обяжет ли в скором времени установка run0 удалять su/sudo? Я не понимаю этот ход конём. Так можно под предлогом Уаааа suid злооо пол линукса выпилить. У run0 какая то сверхспецифичная задача и не является это заменой sudo/su ни разу. Но конечно же цель заменить стоит. Она всегда у поттеринга стояла (вернее у тех кто им командует). Ни дополнить, ни улучшить, а исключительно заменить. Что само по себе не плохо, 100500 васей делают свои штуки разные заменяя то или иное. Но тут уровень влияния другой.

Так что ещё раз, зачем? И почему это замена su/sudo. И чем это лучше уже существующих механизмов ограничения прав. И вообще. Я не админ и может чего не понимаю. Но цели кроме как под сомнительным предлогом заменить ради заменить, не вижу.

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

Как аргумент к ним это бы исправил?

А сильно ли нужно это вообще исправлять? Проблема не в том что рун0 написан, проблема в том что он хочет заменить, читай выкинуть, sudo/su, учитывая то что по сути это просто модуль для systemd, а проблема последнего то что его наличие в фундаменте ОС лёнька и эксплуатирует по полной. Сказал бы «вот утилита для вот таких вот специфических задачек» вопросов было бы ровно NULL. Но нет, надо очередной раз замахнутся на что-то уже существующее и конечно же завязать это на systemd, а как иначе. Просто утилиту для специфических задач написать же нельзя, нужно сделать это так что-бы потом, чуть погодя сказать либо это либо валите на диван.

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

$USER вошёл в свою сессию все suid биты для него сбрасываются и всё

Так уязвимости в sudo все еще могут быть, да и как тогда получить root доступ все же?

просто переехал из А в B

Нет, убрали A, из массива А, Б. Теперь только один Б.

А сильно ли нужно это вообще исправлять?

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

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

Во-во. И тыкать в popcon, мол, «да кому щас нужны ваши маргинальные sudo, посмотрите на количество установок!» При run0 в дефолте, ога.

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

Прописывать sudo прямо в скриптах – это изврат.

Ну вот у меня задача была, после установки(run-файл) софта скопировать .desktop на рабочий стол. Вот такие клииенты, им надо чобы всё было как на венде, а переезжать(импортозамещаться) на линукс им сверху спущено. Оказалось что узнать из скрипта, запущенного как sudo sh script.sh, каталоги XDG не всегда возможно, даже если запускать как sudo -E. Пришлось sudo внутрь скрипта внедрить и в инструкции написать, что если хотите ярлык на рабочем столе, то запускайте от пользователя.

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

Во-во. И тыкать в popcon, мол, «да кому щас нужны ваши маргинальные sudo, посмотрите на количество установок!» При run0 в дефолте, ога.

А подругому и не будет, будет дефолтная установка, большинство вздохнёт и допишет в какую-нибудь функицию вида

function addUser(sky, allah, whatever){ //а я чо, у polkit макак так принято
    let sudousers = ["Vasya", "Peter", "John"];
    
    return sudousers;
}

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

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

Так уязвимости в sudo все еще могут быть

А кабы, а если бы. Уязвимости в systemd всё ещё могут быть.

Нет, убрали A, из массива А, Б. Теперь только один Б.

Ну нет, тогда добавили А к Б и если полетит Б полетит и А.

Уменьшит дублирование кода

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

меньше уязвимых программ

Спорно

плюс совсем другой метод работы

Это ладно

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

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

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

Поживём увидим, вангую что через 2 года в федоре run0 внезапно станет конфликтовать с su/sudo и для своей установки будет требовать их удаления, при этом если поправить пакет то конфликт можно будет убрать вообще без последствий для работы всех трёх

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Ну нет, тогда добавили А к Б и если полетит Б полетит и А.

Было две «suid-сущности», осталась одна. Раньше могло сломаться и А и Б, теперь только Б.

А кабы, а если бы. Уязвимости в systemd всё ещё могут быть.

Да, но раньше уязвимости могли быть и в sudo, и в systemd.

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

Сейчас вполне возможно удалить sudo. Я его не использую.

Спорно

Не спорно, sudo не будет.

Дабы run0 имел смысл и полностью раскрылся, нужно вырезать с корнями все альтернативы

Достаточно вырезать sudo, уже успех. Остальное можно потом, но улучшение можно получить уже сейчас.

MOPKOBKA ★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)