Kitos versijos kūrimas systemd 256 yra vykdomas ir šiuo metu baigtas beveik 80%. ir vienas pateiktinų kandidatų pakeitimų Šiame leidime yra to paties sisteminio „Lennart Pottering“ kūrėjo, kuris publikacijoje apie mastodoną paskelbė apie jo pristatymą. nauja programa, vadinama „run0“.
Šis įrankis Jis pateikiamas kaip saugesnis sudo pakaitalas ir veikia kaip komandos systemd-run papildymas. Pagrindinis pranašumas yra tai, kad nereikia naudoti vykdomojo failo su SUID vėliava, o tai gali būti rizikinga. Paminėta, kad run0 yra sukurta tam, kad procesai su kitų vartotojų identifikatoriais būtų vykdomi saugiau.
Poetavimas teigia, kad sudo pakaitalas įvedamas todėl, kad pagrindinė sudo problema yra jo SUID prigimtis, galintis pakenkti saugumui. Reaguodami į tai, pradedant systemd 256, mes siekiame veikti su privilegijomis nepriklausomai nuo neprivilegijuotų kodų įsikišimo. Naudojant SUID vėliavėlę programoje sudo norint pakeisti identifikatorių, kyla papildomų pavojų, nes SUID procesas paveldi vykdymo kontekstą, apimantį daugybę ypatybių, kurias valdo neprivilegijuotas vartotojas.
SUID procesai yra svetimos sąvokos: juos iškviečia neprivilegijuotas kodas ir jie paveldi vykdymo kontekstą, numatytą ir kontroliuojamą neprivilegijuoto kodo. Vykdymo kontekste turiu omenyje daugybę savybių, kurias šiandien turi procesas Linux sistemoje, pradedant aplinkos kintamaisiais, proceso planavimo ypatybėmis, cgroup priskyrimais, saugos kontekstais, perduodamų failų deskriptoriais ir kt.
Šios savybės gali apimti aplinkos kintamuosius, failų aprašus, programuotojo parinktis ir grupių susiejimą. Nors kai kurias iš šių ypatybių SUID procesų branduolys pašalina automatiškai, o kitas pašalina pati programa, sudėtingose SUID programose, tokiose kaip sudo, vis tiek randama pažeidžiamumų dėl neatsargaus išorinių duomenų tvarkymo, kuriam įtakos turi neprivilegijuoti vartotojai.
Priešingai, Run0 nenaudoja SUID ir vietoj to prašo sistemos administratoriaus paleisti apvalkalą arba procesą su konkrečiu vartotojo ID, Po to jis sukuria naują pseudoterminalą (PTY) ir tvarko duomenų perdavimą tarp jo ir dabartinio terminalo (TTY). Šis elgesys labiau primena veikimą per ssh, o ne tradicinį sudo. Privilegijuotas procesas veikia izoliuotame kontekste, kurį generuoja PID 1 procesas, o ne vartotojo procesas, o tai reiškia, kad jis nepaveldi vartotojo aplinkos savybių, išskyrus persiunčiamą aplinkos kintamąjį $TERM. Be to, persiuntimas valdomas naudojant aiškiai leidžiamų ypatybių sąrašą, taikant baltojo sąrašo metodą, o ne juodąjį sąrašą.
„Polkit“ yra atsakingas už vartotojo galimybių suteikimą ir nustatymą „run0“, o klasikinės taisyklių kalbos (/etc/sudoers), naudojamos sudo, šis įrankis nepalaiko. Funkcija paleisti programas su kitomis privilegijomis yra integruota į systemd-run, o komanda run0 sukuriama kaip simbolinė nuoroda į systemd-run, suteikianti sudo tipo komandų eilutės sąsają, kai naudojama.
Bet užtenka tų kalbų apie saugumą. Priemone taip pat daug smagiau naudotis nei sudo. Pavyzdžiui, pagal numatytuosius nustatymus jis atspalvins jūsų terminalo foną rausvu tonu, kai dirbate su padidintomis teisėmis. Tai turėtų veikti kaip draugiškas priminimas, kad dar neatsisakėte privilegijų ir pažymi visų komandų, kurios buvo paleistos su tinkamomis teisėmis, išėjimą.
Papildoma funkcija iš run0 yra vizualiai rodo, kad dirbate su padidintomis privilegijomis. Tai pasiekiama nustatant rausvą foną terminale ir pridedant raudoną tašką prie lango pavadinimo. Pabaigus bėgimą su padidintomis privilegijomis, taškas dingsta, o fonas grįžta į normalų. Be to, run0 palaiko visas paleidimo parinktis. "systemd-run"
, kaip parametras "--property"
, kuri leidžia nustatyti savavališkas sisteminių paslaugų konfigūracijas, pvz., "CPUWeight=200 MemoryMax=2G IPAccounting=yes
"
Jei norite sužinoti daugiau apie tai, galite sužinoti daugiau Šioje nuorodoje.