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)

Для авторизации и определения возможностей пользователя в run0 используется Polkit.

pkexec разве не для этого?

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

конфиг Polkit - это вроде xml портянка - Ынтерпрайзненько

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

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

реализованная в форме надстройки над командой systemd-run

Порчёл сначала «реализованная в форме надстройки над командой строки systemd-run» и глаза на секунду округлил типа «А чё уже?!» :D

Ладно, написал и написал. Цели быть совместимым хоть с чем-то кроме ядра линукс у поттеринга нет, даже с окружением этого самого линукса потому что его быть не должно и спустя **лет 142% будет ядро, поверх systemd base utils и поверх этого уже всё остальное. Даже ls не будет. А в терминале нужно будет писать на XML и только через экранную клавиатуру.

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

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)

Так вам, системдешники и надо

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

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

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

А в терминале нужно будет писать на XML

На Ansible.
А терминала не будет, как раньше, во времена JCL.

bigbit ★★★★★
()

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

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

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

шта. о чем ты вообще.

t184256 ★★★★★
()

Ненужно как sudo так и эта чушь. Но учитывая что там ещё и polkit приплели - ещё хуже.

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

Не в линуксе а в системг. В линуксе оно максимально простое (лишь чуть сложнее чем в других юниксах) - есть сисколлы для смены разных uid и есть setuid-бинарники которые их меняют в сисколле execve(). Отличие от других юниксов в том что кроме трёх uid-ов (real uid, effective uid, saved setuid) есть ещё fsuid.

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

firkax ★★★★★
()

Прочитал новость по ссылке и не очень понял следующего.

То, что процесс порождается по принципу запуска сервиса – от PID 1 – означает, что контекст для мандатки будет потерян. Я правильно понимаю?

Так это же наоборот плохо, а не хорошо.

P.S.

Истерики systemd хейтеров не интересны.

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

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

У systemd конфиги в INI-подобном формате ваще-т.

Это конечно всё стёбная шутка.

Шутка смешная, когда она как-то бьётся с реальностью, а тут нет.

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

Как он задолбал

CrX ★★★★★
()

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

Какого простите в опу окна?

anc ★★★★★
()

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

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

Не понимаю почему не Lua. JavaScript слишком жирный и полон граблей. Смузихлёбы ни на чём кроме JS писать чтоли не умеют и не обладают навыками самообучения?

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

Учитывая, что туда был засунут движок js от firefox, и только 2 года назад добрые люди заменили его на duktape, к разрабам изначального варианта я вообще вопросов не имею. Как говорится, хорошо хоть ложку ко рту умеют подносить. Спасибо боженьке и на том.

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

1) оно не нужно

2) та его часть, которая полезна - исключительно дублирует функционал su

3) несёт в себе убогую виндузятную идеологию «запустить от админа из под юзера»

4) выдача «прав» через регулярки на командную строку и общая наркомания в конфигах, которые в итоге большинство, включая дистросборщиков, ставят в allow all

5) общая дефективность её авторов, приведшая как к пунктам 3, 4 так и к идиотским дырам, а так же к созданию официального сайта в скам-варез-tld

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

только через экранную клавиатуру.

Я думаю, что и через 142 года на онтопик так и не завезут удобную экранную клавиатуру.

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

Классика.

  1. Ещё не приняли, нечего устраивать истереку сейчас.
  2. Примут, но пройдёт ещё 5 лет, пока она станет дефолтом, нечего устраивать истерику сейчас. ← ВЫ НАХОДИТЕСЬ ЗДЕСЬ
  3. Ну дефолт, но обычные sudo и su никто не отбирает, нечего устраивать истерику.
  4. Так а что ж вы 10 лет молчали, раньше надо было истерику устраивать.
CrX ★★★★★
()
Ответ на: комментарий от wandrien

Хуже. Там конфиги на императивном ЯП - JavaScript.

Хотел написать ты путаешь JSON и JS. Гогуглил и охренел, реально у парней крыша течёт.

/etc/polkit-1/rules.d/10-disable-suspend.rules

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" ||
        action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
        action.id == "org.freedesktop.login1.hibernate" ||
        action.id == "org.freedesktop.login1.hibernate-multiple-sessions")
    {
        return polkit.Result.NO;
    }
});

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

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

4) выдача «прав» через регулярки на командную строку и общая наркомания в конфигах,

Насчёт конфига согласен, не очень привычно. Но есть man sudoerrs и другие доки.

которые в итоге большинство, включая дистросборщиков, ставят в allow all

То что условным 90% хватает тупого варианта «запустить из под рута» не означает, что остальным 10% не нужен более другой функционал sudo

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

Крайне странный выбор языка. Надо было на C# делать конфиги.

James_Holden ★★★★
()
Ответ на: комментарий от Ygor
/etc/polkit-1/rules.d/10-disable-suspend.rules

polkit.addRule(function(action, subject) {
   if (action.id == "org.freedesktop.login1.suspend" ||
       action.id == "org.freedesktop.login1.suspend-multiple-sessions" ||
       action.id == "org.freedesktop.login1.hibernate" ||
       action.id == "org.freedesktop.login1.hibernate-multiple-sessions")
   {
       return polkit.Result.NO;
   }
});

В примере взятом с арчвики или какая-то наркмания написана или это реально работающий конфиг?

Адепты этой срани господней объясните мне тупому, какого хрена функция не обрабатывает subject переданный ей? Нахрена он передаётся?

И что будет если в эту функцию будет передано значение action.id отличное от этих 4 значений ну то есть понятно функция вернёт undefined и что будет дальше с вызывающей стороной?

А вот эта == проверка она какая-то странная, подразумевается что action.id может быть OrG.GreeDesktop.Login1.hibernate каким-нибудь таким? Почему не строгое равенство?

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

Напомню, что это базовая система нашей ОС. Которая до недавнего времени включала в себя движок от огнелиса. Базовая система серверной ОС. Движок.

Так я потерял веру в человечество, и в линукс в частности.

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

Линукс - начал пытаться работать. Это надо исправлять

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

Адепты этой срани господней объясните мне тупому, какого хрена функция не обрабатывает subject переданный ей?

Потому что в данном примере его обработка не нужна.

ну то есть понятно функция вернёт undefined и что будет дальше с вызывающей стороной?

А документацию почитать?

Functions are called in the order they have been added until one of the functions returns a value.

А вот эта == проверка она какая-то странная, подразумевается что action.id может быть OrG.GreeDesktop.Login1.hibernate каким-нибудь таким? Почему не строгое равенство?

Потому что в данном случае сугубо похрен. == не имеет никакого отношения к case insensitive.

Это вот и есть адепты «классического linux», которые и ман прочитать не могут, и о JS имеют представление уровня «там есть какие-то нестрогие сравнения, которые хз чо делают»?

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

и в линукс в частности.

Хаха я с 2018 кажись на венде после 12 лет ковыряний *nix на десктопе ибо видел я в гробу это все вот.

Которая до недавнего времени включала в себя движок от огнелиса.

Да похрен от чего хоть V8, хоть нода. Меня беспокоит вопрос - нахрена эти все правила, эти мутные конфиги, можно же было взять один json файл все в него зафигачить, смотрелось бы логичнее и адекватнее - все ещё текстовой файл, понятный текстовой файл, адекватный нейминг объектов, под любой вменяемый ide можно написать автодополнения со справкой по конфигу, как минимум проще навигацию осуществлять по всему конфигу сразу.

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

Хаха я с 2018 кажись на венде

А, ну тогда твоё мнение вообще нерелевантно. Иди на винфак и там возмущайся чему-нибудь =)

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

Потому что в данном примере его обработка не нужна.

С какой коррекционной шкилы сбежали разработчики этого «добра»?

А документацию почитать?

Документация всегда врёт. Вангую там тысячи обработок udefined/null в коде. Всё это намешано и детали имплентации и публичный api и сопровождать это решительно не возможно.

и о JS имеют представление уровня

Понятно адепты тупые, в том числе и я, но вот ты острый парень объясни почему не JSON общим файлом?

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

Работы профессора мистера Поттеринга обязательны к внедрению.

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

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

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

С какой коррекционной шкилы сбежали разработчики этого «добра»?

Видимо из той же, откуда и все остальные, которые делают линукс на десктопе последние 20 лет.

Документация всегда врёт. Вангую там тысячи обработок udefined/null в коде. Всё это намешано и детали имплентации и публичный api и сопровождать это решительно не возможно.

Где что намешано? Ты несёшь бессвязный бред сейчас.

Понятно адепты тупые, в том числе и я, но вот ты острый парень объясни почему не JSON общим файлом?

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

Засунули императивный ЯП туда явно не к месту вылупившиеся «хакиры». А что они при этом туда еще SpiderMonkey вкорячили, то вообще получается чудесное сочетание хакер-смузихлёб.

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

Где что намешано?

Вот смотри соседний пример:

/etc/polkit-1/rules.d/00-log-access.rules

polkit.addRule(function(action, subject) {
    polkit.log("action=" + action);
    polkit.log("subject=" + subject);
});

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

А тут кто-то уже сделал аналог sudo и осилил назвать функцию по другому, но чёт опять не очень:

/etc/polkit-1/rules.d/49-rootpw_global.rules

/* Всегда выполняем аутентификацию администраторов путём
 * запроса пароля root, аналогично опции rootpw в sudo
 */
polkit.addAdminRule(function(action, subject) {
    return ["unix-user:root"];
});


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

Может ты уже прочитаешь грёбаный мануал и перестанешь писать тупняк?

А тут кто-то уже сделал аналог sudo и осилил назвать функцию

«Кто-то». Разрабы polkit, например. Потому что это не «кто-то назвал функцию», а вызывает документированный метод для добавления правила.

А «функции» во всех примерах – безымянные лямбды.

Божечки, эникеи пытаются понять JavaScript, на это больно смотреть.

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

Может ты уже прочитаешь грёбаный мануал и перестанешь писать тупняк?

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

безымянные лямбды

Дооо.

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

Зачем тебе смотреть код, если ты даже синтаксиса не знаешь?

«К чему вам подорожная, хамы? Вы же неграмотны.» (c)

wandrien ★★
()

Ему кто-то рассказывал, что одно из основных преимуществ никсов, включая Линукс была унификация и стандартизация команд, интерфейсов и прочего, чтобы писать код один раз и запускать везде? А ща будет там sudo, там run0, там doas, там ещё мура какая-то…

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

Чтобы не изобретать очередной декларативный недоязычок, который invariably начнёт обрастать костылями и псевдоимперативными конструкциями до состояния полной нечитабельности (примеров полно)?

Я вот очень рад, что они это сделали.

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

А ща будет

…Везде run0, а всё остальное станет ненужным и через пару поколений старых пердунов отомрёт. Слава унификации, Поттерингу слава.

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