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ä:
-
Runtime-lataus ensimmäisellä käynnistyksellä
→ Iso GNOME / KDE -runtime ladataan muistista → käynnistys hitaampi ensimmäisellä kerralla. -
Portals-rajapinnat
→ Kun sovellus pyytää tiedoston selausta, kameraa, tulostusta, se kulkee Portals-välikerroksen läpi. -
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
