Miten Flatpak on eristetty


Flatpak on sovellusten jakelu- ja eristysjärjestelmä, mutta sen toimintatapa voi olla hämmentävä, koska se poikkeaa perinteisestä Linux-pakettien hallinnasta (apt, dnf, pacman, jne.). Tässä selitettynä selkeästi ja yksinkertaisesti, miten Flatpak-sovellukset ovat eristettyjä ja miten ne silti toimivat järjestelmässä.

🔒 Miten Flatpak on eristetty?

Flatpak käyttää kahta tekniikkaa eristämiseen:

1. Bubblewrap-kontti

Kun Flatpak-sovellus käynnistetään:

  • se ajetaan eristetyssä ns. sandbox-ympäristössä

  • sovellus näkee vain sen, mitä sille on annettu lupien kautta
    (ei koko tiedostojärjestelmää kuten normaali binääri tekee)

→ Tämä tarkoittaa, että sovellus ei voi vapaasti lukea tai muuttaa järjestelmää.

🧱 2. Runtimet (Freedesktop, GNOME, KDE)

Flatpak-sovellukset eivät jaa järjestelmän kirjastoja, vaan:

  • käyttävät erillistä runtime-pakettia, jossa on kirjastot ja riippuvuudet

  • tämä tekee sovelluksen vakaammaksi ja useimmissa distroissa identtiseksi

→ Sovellus ei riko distroasi, koska se ei koske sen kirjastoihin.

🛠️ Mitä sovellus saa tehdä ja mitä ei?

Eristys perustuu oikeuksiin (permissions):

Toiminto Saako Flatpak tehdä? Huomio
Lukea / kirjoittaa koko järjestelmää ❌ Ei Paitsi jos käyttäjä antaa luvan
Lukea kotikansiota ❌ Oletuksena ei Vain tietyt alikansiot
Avata tiedostoja tiedostonvalitsimella ✔️ Käyttää Portals-rajapintaa
Verkko ✔️ Oletuksena Voi poistaa
Laitteet (kamera, mikrofoni) ❌ Ei ilman lupaa Pyytää lupaa Portalsien kautta
GPU / sandboxin sisäinen grafiikka ✔️ Turvallista

🪟 "Portals" – miten Flatpak pääsee järjestelmään ilman että rikkoo eristystä?

Tämä on monelle se mystinen osa.

Flatpak ei koske järjestelmää suoraan. Sen sijaan:

  • kun sovellus haluaa avata tiedoston, mennä verkkoon, käyttää kameraa, näyttää tulostusikkunan jne.

  • se pyytää portals-rajapinnan kautta
    → tämä toimii kuin "välityspiste", joka tarkistaa oikeudet

Esimerkki:

  • Sovellus haluaa avata tiedoston.
    Sovellus ei näe kotikansiotasi suoraan.

  • Portals avaa tiedostonvalitsimen järjestelmän puolella, ja käyttäjä valitsee tiedoston.

  • Portals antaa vain valitun tiedoston sovellukselle.

🔐 Yhteenveto helppona listana

Flatpak on eristetty siksi, että:

  • Sovellus juoksee omassa " hiekkalaatikko" (sandbox)

  • Se ei käytä Linuxin järjestelmäkirjastoja, vaan omia runtimetteja

  • Sillä on vain rajatut oikeudet

  • Portals mahdollistaa turvallisen pääsyn järjestelmän toimintoihin

1. Flatpakin oikeuksien tarkistaminen ja muuttaminen

Oikeuksien katsominen

Komento näyttää sovelluksen kaikki oikeudet (tiedostot, laitteet, sandbox-asetukset):

flatpak info --show-permissions sovellus.nimi

Esimerkki:

flatpak info --show-permissions com.spotify.Client

Oikeuksien muuttaminen (override)

Anna sovellukselle pääsy koko kotikansioon:

flatpak override --user --filesystem=home sovellus.nimi

Poista pääsy kotikansioon:

flatpak override --user --filesystem=home:ro sovellus.nimi

Poista kaikki verkko-oikeudet:

flatpak override --user --no-network sovellus.nimi

Avaa GUI-työkalulla (suositeltu):
Flatseal — Flatpak-sovellusten oikeuksien graafinen hallinta.

2. Flatpak vs Snap vs AppImage

Ominaisuus Flatpak Snap AppImage
Sandbox ✔️ Eristetty ✔️ Eristetty ❌ Ei sandboxia
Riippuvuudet Runtimet Snap-ytimet Mukana AppImagessa
Suorituskyky Yleensä erinomainen, mutta riippuu runtimestä Hitaampi käynnistää (loop mount) Nopein
Tiedostokoko Keskikokoinen Suuri Suuri
Asennustapa flatpak install snap install Lataat tiedoston ja suoritat
Desktop-integraatio Hyvä Hyvä mutta tiukempi Heikko (ei autom. päivityksiä)

Flatpak sopii parhaiten työpöytäohjelmiin.
Snap sopii palvelimiin + Canonical-ekosysteemeihin.
AppImage on täysin kannettava, mutta turvaton (ei sandboxia).

3. Miksi jotkut Flatpak-sovellukset voivat olla hitaampia?

Syitä:

  1. Runtime-lataus ensimmäisellä käynnistyksellä
    → Iso GNOME / KDE -runtime ladataan muistista → käynnistys hitaampi ensimmäisellä kerralla.

  2. Portals-rajapinnat
    → Kun sovellus pyytää tiedoston selausta, kameraa, tulostusta, se kulkee Portals-välikerroksen läpi.

  3. Eristys hidastaa joitain matalan tason operaatioita
    → Esim. Grafiikka ei yleensä hidastu, mutta tiedoston avaaminen sandboxista joskus voi.

Mutta usein Flatpak toimii nopeammin, koska:

  • riippuvuudet ovat sovellukselle optimoituja

  • järjestelmän omat vanhat kirjastot eivät jarruta sovellusta

4. Flatpak-sandboxin rakenne (selitetty yksinkertaisesti)

Voit ajatella Flatpak-sovellusta näin:

+-----------------------------+ | Ulkoinen maailma / Linux | +-----------------------------+ Sovellus EI näe tätä suoraan vain porttien & lupa-asetusten kautta ↓ +--------------------------------------------------+ | FLATPAK SANDBOX | | Bubblewrap-eristys | | Näkee vain: | | /app (sovelluksen tiedostot) | | /usr (runtime-kirjastot) | | /run/user/... (flatpakin IPC-kanavat) | | | | Ei näe /home, /etc, /usr, /var ilman lupia | +--------------------------------------------------+ ↓ Portals (Internet, kamera, tulostus, tiedostonvalitsin) +--------------------------------------------------+ | Järjestelmän portit ("Portals") | +--------------------------------------------------+

Portals toimii "turvavälikätenä" sovelluksen ja järjestelmän välillä.

5. Flatpakin runtimet (Freedesktop, GNOME, KDE)

Flatpak-sovellukset eivät käytä distroasi, vaan runtimia:

Freedesktop Platform (org.freedesktop.Platform)

  • Peruskirjastot (glibc, mesa, ffmpeg jne.)

  • Useimmat Flatpakit perustuvat tähän

GNOME Platform

  • GNOME-sovelluksille tarkoitettu runtime

  • Sisältää GTK-, GLib-, GStreamer-, Adwaita-teemat

KDE Frameworks Runtime

  • Qt-sovelluksille tarkoitettu runtime

  • Sisältää Plasma-/KDE-teemoja

Miksi tarvitaan runtimet?

  • Sovellukset toimivat samalla tavalla KDE, GNOME, Xfce jne. distoissa

  • Päivitykset tulevat suoraan Flatpak-foorumeilta, eivät distroilta

  • Ei riko järjestelmän kirjastoversioita

Luo kotisivut ilmaiseksi! Tämä verkkosivu on luotu Webnodella. Luo oma verkkosivusi ilmaiseksi tänään! Aloita