Flatpak 1.12.0 ինքնաբավ փաթեթների համակարգի թողարկում

Հրապարակվել է Flatpak 1.12 գործիքակազմի նոր կայուն մասնաճյուղը, որն ապահովում է համակարգ ստեղծելու ինքնուրույն փաթեթներ, որոնք կապված չեն հատուկ Linux բաշխումների հետ և աշխատում են հատուկ կոնտեյներով, որը մեկուսացնում է հավելվածը մնացած համակարգից: Flatpak փաթեթների գործարկման աջակցությունը տրամադրվում է Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux և Ubuntu-ի համար: Flatpak փաթեթները ներառված են Fedora-ի պահոցում և աջակցվում են GNOME հավելվածի հայրենի կառավարչի կողմից:

Հիմնական նորամուծությունները Flatpak 1.12 մասնաճյուղում.

  • Steam խաղերի առաքման ծառայության համար հաճախորդի հետ flatpak փաթեթում օգտագործվող nested sandbox միջավայրերի բարելավված կառավարում: Ներդրված ավազատուփերում թույլատրվում է /usr և /app դիրեկտորիաների առանձին հիերարխիաների ստեղծումը, որն օգտագործվում է Steam-ում՝ խաղերը գործարկելու համար առանձին կոնտեյներով՝ իր սեփական /usr միջնորմով, որը մեկուսացված է Steam հաճախորդի հետ միջավայրից:
  • Միևնույն հավելվածի նույնացուցիչով (app-ID) փաթեթի բոլոր օրինակները կիսում են /tmp և $XDG_RUNTIME_DIR գրացուցակները: Ընտրովի, օգտագործելով «--allow=per-app-dev-shm» դրոշը, կարող եք միացնել /dev/shm համօգտագործվող գրացուցակի օգտագործումը:
  • Բարելավված աջակցություն Text User Interface (TUI) հավելվածներին, ինչպիսիք են gdb-ը:
  • «ostree prune» հրամանի ավելի արագ իրականացումը ավելացվել է build-update-repo կոմունալ ծրագրին, որը օպտիմիզացված է պահոցների հետ արխիվային ռեժիմում աշխատելու համար:
  • Պորտալի մեխանիզմի ներդրման մեջ CVE-2021-41133 խոցելիությունը, որը կապված է նոր համակարգային զանգերի արգելափակման բացակայության հետ, կապված բաժանմունքների տեղադրման հետ, seccomp կանոններում, շտկվել է: Խոցելիությունը հավելվածին թույլ է տվել ստեղծել ներդիր ավազարկղ՝ շրջանցելու «պորտալի» ստուգման մեխանիզմները, որոնք օգտագործվում են բեռնարկղից դուրս ռեսուրսների հասանելիությունը կազմակերպելու համար:

    Արդյունքում, հարձակվողը, կատարելով մոնտաժման հետ կապված համակարգային զանգեր, կարող է շրջանցել ավազատուփի մեկուսացման մեխանիզմը և ստանալ ամբողջական մուտք դեպի հյուրընկալող միջավայրի բովանդակությունը: Խոցելիությունը կարող է օգտագործվել միայն փաթեթներում, որոնք ապահովում են հավելվածների անմիջական մուտք դեպի AF_UNIX վարդակներ, ինչպիսիք են Wayland-ի, Pipewire-ի և pipewire-pulse-ի կողմից օգտագործվողները: 1.12.0 թողարկման մեջ խոցելիությունը ամբողջությամբ չվերացվեց, ուստի 1.12.1 թարմացումը թողարկվեց տաք վիճակում:

Հիշեցնենք, որ Flatpak-ը հավելվածների մշակողներին թույլ է տալիս պարզեցնել իրենց ծրագրերի բաշխումը, որոնք ներառված չեն ստանդարտ բաշխման պահոցներում՝ պատրաստելով մեկ ունիվերսալ կոնտեյներ՝ առանց յուրաքանչյուր բաշխման համար առանձին հավաքներ ստեղծելու: Անվտանգության գիտակցությամբ զբաղվող օգտատերերի համար Flatpak-ը թույլ է տալիս կասկածելի հավելված գործարկել կոնտեյներով՝ ապահովելով միայն հավելվածի հետ կապված ցանցային գործառույթների և օգտագործողի ֆայլերի մուտքը: Նոր ապրանքներով հետաքրքրված օգտատերերի համար Flatpak-ը թույլ է տալիս տեղադրել հավելվածների վերջին թեստային և կայուն թողարկումները՝ առանց համակարգում փոփոխություններ կատարելու անհրաժեշտության: Օրինակ, Flatpak փաթեթները կառուցված են LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 AD, Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio և այլն:

Փաթեթի չափը նվազեցնելու համար այն ներառում է միայն հավելվածներին հատուկ կախվածություններ, իսկ հիմնական համակարգի և գրաֆիկական գրադարանները (GTK, Qt, GNOME և KDE գրադարաններ և այլն) նախագծված են որպես plug-in ստանդարտ գործարկման միջավայրեր: Flatpak-ի և Snap-ի հիմնական տարբերությունն այն է, որ Snap-ը օգտագործում է հիմնական համակարգի միջավայրի բաղադրիչները և մեկուսացումը, որը հիմնված է զտման համակարգի զանգերի վրա, մինչդեռ Flatpak-ը ստեղծում է համակարգից առանձին կոնտեյներ և գործում է մեծ գործարկման հավաքածուներով՝ տրամադրելով ոչ թե փաթեթներ որպես կախվածություն, այլ ստանդարտ: մեկ համակարգային միջավայրեր (օրինակ՝ բոլոր գրադարանները, որոնք անհրաժեշտ են GNOME կամ KDE ծրագրերի գործարկման համար):

Ի լրումն ստանդարտ համակարգի միջավայրի (աշխատանքի), որը տեղադրված է հատուկ պահեստի միջոցով, տրամադրվում են հավելվածի շահագործման համար անհրաժեշտ լրացուցիչ կախվածություններ (փաթեթ): Ընդհանուր առմամբ, գործարկման ժամանակը և փաթեթը կազմում են կոնտեյների լցոնումը, չնայած այն հանգամանքին, որ գործարկման ժամանակը տեղադրված է առանձին և կապված է միանգամից մի քանի կոնտեյների հետ, ինչը թույլ է տալիս խուսափել բեռնարկղերի համար սովորական համակարգի ֆայլերի կրկնօրինակումից: Մեկ համակարգում կարող են տեղադրվել մի քանի տարբեր գործարկման ժամանակներ (GNOME, KDE) կամ նույն գործարկման մի քանի տարբերակներ (GNOME 3.40, GNOME 3.42): Հավելվածը որպես կախվածություն ունեցող կոնտեյները օգտագործում է կապակցում միայն կոնկրետ գործարկման ժամանակի համար՝ առանց հաշվի առնելու աշխատաժամանակը կազմող առանձին փաթեթները։ Բոլոր բացակայող տարրերը փաթեթավորված են անմիջապես հավելվածի հետ: Երբ ձևավորվում է կոնտեյներ, գործարկման ժամանակի բովանդակությունը տեղադրվում է որպես /usr միջնորմ, իսկ փաթեթը տեղադրվում է /app գրացուցակում:

Գործարկման ժամանակը և հավելվածի բեռնարկղերը կառուցված են OSTree տեխնոլոգիայի միջոցով, որում պատկերը ատոմային կերպով թարմացվում է Git-ի նման պահոցից, որը թույլ է տալիս տարբերակի վերահսկման մեթոդները կիրառել բաշխման բաղադրիչների վրա (օրինակ՝ դուք կարող եք արագորեն հետ գլորել համակարգը դեպի նախորդ վիճակ): RPM փաթեթները թարգմանվում են OSTree պահոց՝ օգտագործելով rpm-ostree հատուկ շերտ: Աշխատանքային միջավայրում փաթեթների առանձին տեղադրումը և թարմացումը չի ապահովվում, համակարգը թարմացվում է ոչ թե առանձին բաղադրիչների մակարդակով, այլ որպես ամբողջություն՝ ատոմային կերպով փոխելով իր վիճակը: Ապահովում է գործիքներ՝ թարմացումները աստիճանաբար կիրառելու համար՝ վերացնելով յուրաքանչյուր թարմացումով պատկերն ամբողջությամբ փոխարինելու անհրաժեշտությունը:

Ստեղծված մեկուսացված միջավայրը լիովին անկախ է օգտագործվող բաշխումից և, փաթեթի պատշաճ կարգավորումներով, չունի օգտվողի կամ հիմնական համակարգի ֆայլեր և գործընթացներ, չի կարող ուղղակիորեն մուտք գործել սարքավորում, բացառությամբ DRI-ի միջոցով ելքի, և զանգեր դեպի ցանցային ենթահամակարգ: Գրաֆիկական ելքի և մուտքագրման կազմակերպումն իրականացվում է Wayland արձանագրության կամ X11 վարդակից փոխանցման միջոցով: Արտաքին միջավայրի հետ փոխգործակցությունը հիմնված է DBus հաղորդագրությունների համակարգի և հատուկ Portals API-ի վրա:

Մեկուսացման համար օգտագործվում են Bubblewrap շերտը և Linux կոնտեյներների վիրտուալացման ավանդական տեխնոլոգիաները՝ հիմնված cgroups-ի, namespace-ների, Seccomp-ի և SELinux-ի օգտագործման վրա: PulseAudio-ն օգտագործվում է ձայն արտաբերելու համար: Այս դեպքում մեկուսացումը կարող է անջատվել, որն օգտագործվում է շատ հայտնի փաթեթների մշակողների կողմից՝ ֆայլային համակարգին և համակարգի բոլոր սարքերին լիարժեք մուտք ստանալու համար: Օրինակ՝ GIMP-ը, VSCodium-ը, PyCharm-ը, Octave-ը, Inkscape-ը, Audacity-ն և VLC-ն ունեն սահմանափակ մեկուսացման ռեժիմ, որը թույլ է տալիս լիարժեք մուտք գործել դեպի տնային գրացուցակ:

Եթե ​​տնային գրացուցակ մուտք ունեցող փաթեթները վտանգված են, չնայած փաթեթի նկարագրության մեջ «sandboxed» պիտակի առկայությանը, հարձակվողը միայն պետք է փոխի ~/.bashrc ֆայլը՝ իր կոդը գործարկելու համար: Առանձին խնդիր է փաթեթների փոփոխությունների վերահսկումը և փաթեթ ստեղծողների նկատմամբ վստահությունը, որոնք հաճախ կապված չեն հիմնական նախագծի կամ բաշխումների հետ:

Source: opennet.ru

Добавить комментарий