Ленарт Поттеринг башка колдонуучулардын идентификаторлору астында процесстерди иштетүүгө мүмкүндүк берген run0 утилитасын сунуштады. Жаңы утилита sudo программасын бир кыйла коопсуз алмаштыруучу катары жайгашкан, systemd-run командасына кошумча катары ишке ашырылган жана SUID желеги менен аткарылуучу файлды колдонуудан арылууга мүмкүндүк берет. Run0 утилитасы systemd 256нын релиз талапкерине киргизилген.
Судодо SUID желегин колдонуу менен идентификаторду өзгөртүү SUID процесси чөйрө өзгөрмөлөрү, файл дескрипторлору, пландоочу параметрлери жана башка артыкчылыктары жок колдонуучу тарабынан башкарылуучу көптөгөн касиеттерди камтыган аткаруу контекстти мурастап алгандыктан, кошумча тобокелдиктерди алып келери белгиленген. cgroup байланыштары. Бул касиеттердин айрымдары SUID процесстери үчүн ядро тарабынан автоматтык түрдө тазаланат, ал эми кээ бирлери тиркеменин өзү тарабынан тазаланат. Бирок, судо сыяктуу татаал SUID программаларында артыкчылыксыз колдонуучу таасир этиши мүмкүн болгон тышкы маалыматтарды этиятсыздык менен колдонуудан улам алсыздыктар дайыма табыла берет.
run0, SUIDди колдонуунун ордуна, система менеджеринен көрсөтүлгөн колдонуучу ID менен кабыкты же процессти ишке киргизүүнү, жаңы псевдо-терминалды (PTY) түзүүнү жана аны менен учурдагы терминалдын (TTY) ортосунда маалыматтарды өткөрүп берүүнү суранат. Бул жүрүм-турум аны классикалык sudo менен иштетүүгө караганда ssh аркылуу иштетүүнү көбүрөөк эске салат. Артыкчылыктуу процесс обочолонгон контекстте иштейт, ал колдонуучу процесси тарабынан эмес, PID 1 процесси тарабынан түзүлөт, б.а. $TERM чөйрө өзгөрмөсүн жөнөтүүнү кошпогондо, колдонуучунун чөйрөсүнүн касиеттерин мурастабайт. Экспедиция коркунучтуу касиеттерге тыюу салуу аракетинин ордуна ачык уруксат берилген мүлктөрдүн тизмеси аркылуу жөнгө салынат (кара тизменин ордуна ак тизме түшүнүгү).
Polkit run0 ичинде колдонуучунун мүмкүнчүлүктөрүн авторизациялоо жана аныктоо үчүн колдонулат. Sudo колдонгон классикалык эрежелер тили (/etc/sudoers) колдоого алынбайт. Башка артыкчылыктары бар программаларды иштетүү функционалдуулугу systemd-run ичинде орнотулган жана run0 буйругу systemd-runка символдук шилтеме катары түзүлөт, ал колдонулганда sudo сыяктуу буйрук сабынын интерфейсин камсыз кылат.
Run0 программасынын кошумча өзгөчөлүктөрүнүн бири - терминалга кызыл түстөгү фон коюу жана терезенин аталышына кызыл чекит кошуу аркылуу жогорулатылган артыкчылыктар менен иштөөнүн көрсөткүчү. Башка артыкчылыктар менен аткарууну токтоткондон кийин, чекит жок болуп, фон кадимкидей өзгөрөт. Мындан тышкары, run0 бардык "система менен иштетүү" опцияларын колдойт, мисалы, "--property" параметри, ал аркылуу сиз системалык кызматтар үчүн ыктыярдуу орнотууларды орното аласыз (мисалы, "CPUWeight=200 MemoryMax=2G IPAccounting=ооба") .
Source: opennet.ru
