Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu

Het is u misschien opgevallen dat een deel van de software in uw distributie niet de nieuwste beschikbare software is. De meeste mensen realiseren zich dit niet, omdat dit vaak geen probleem is. Het gebeurt alleen als je een aantal zeer moderne functies nodig hebt en dat wordt een probleem. stel dat Je favoriete video-editor heeft enkele softwarewijzigingen Wat de rendertijd met 20% verbetert. Dit is misschien iets wat je wilt.

Om een ​​lang verhaal kort te maken, de meeste distro's die als "stabiel" of "met ondersteuning op lange termijn" worden beschouwd, hebben (ten minste gedeeltelijk) legacy-software in hun repositories. Maar droids-distributies hebben veel nieuwe software, omdat ze constant updates van upstream-ontwikkelaars aantrekken. Debian Unstable (codenaam Sid) is zo'n distro. Met wat magie op de commandoregel kun je Debain Sid uitvoeren binnen je bestaande Debian Stable-installatie of: Ubuntu.

Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu - Linux

Waarom doe ik dit als ik PPA's of Backports kan toevoegen?

Persoonlijke pakketarchieven zijn erg populair bij gebruikers die nieuwere software aan Ubuntu willen toevoegen. Maar PPA's, backports (op Debian) en andere vergelijkbare methoden interfereren met de hoofdinstallatie. Dit betekent dat ze delen van uw hoofdsysteem kunnen bijwerken. Dit verhoogt het risico dat er iets misgaat, incompatibiliteit tussen nieuwe en oude software, nieuwe bugs die in het besturingssysteem worden geïntroduceerd, enzovoort.

De methode in deze tutorial plaatst het programma daarentegen in een aparte ruimte en interfereert op geen enkele manier met je hoofdinstallatie. Het lijkt een beetje op een container (minus de sterke beveiligingsfuncties). Bovendien heeft Debian Sid veel meer software dan je in PPA's of backports zult vinden. Alles heeft echter zijn beperkingen, dus houd rekening met de opmerkingen van Debian Instabiele pagina.

Maak een minimale Debian Sid-installatie met debootstrap

Open Terminal Emulator en installeer”opstartband:”

sudo apt install debootstrap

U moet naar uw homedirectory gaan;

cd $HOME

Begin opstartband Een nieuwe Debian Sid installeren in de “Directory”debian-kant"

sudo debootstrap sid debian-sid

Dit proces duurt enige tijd, dus wacht een paar minuten.

Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu - Linux

Bereid uw Debian Sid-installatie voor

Installeer eerst een nieuw pakket.:

sudo apt install systemd-container

Gebruik nu het nieuw geïnstalleerde installatieprogramma om Debian Sid "in te voeren":

sudo systemd-nspawn -D debian-sid/

Als je vastloopt met deze container, kun je drie keer achter elkaar op Ctrl +] drukken om te stoppen met werken. Gebruik het alleen als een noodmethode.

Voeg een nieuwe gebruiker toe. In dit voorbeeld staat de gebruiker gewoon bekend als "gebruiker", maar u kunt deze vervangen door de gewenste gebruikersnaam, hoewel wat wordt genoemd geen betekenis heeft.

adduser user
Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu - Linux

Kies een wachtwoord voor deze gebruiker. Er wordt geen tekst weergegeven tijdens het typen. Nadat u op Enter hebt gedrukt, typt u hetzelfde wachtwoord opnieuw wanneer daarom wordt gevraagd. De volgende gegevens, zoals "volledige naam", zijn niet vereist, dus u kunt bij deze prompts gewoon op Enter drukken. Typ ten slotte "y" wanneer u wordt gevraagd of de informatie correct is en druk op Enter.

sudo installeren:

apt install sudo

Voeg de gebruiker toe aan de sudo-groep:

adduser user sudo

Stel de hostnaam voor uw container in. Dit helpt u bij de hardware, waardoor deze beter zichtbaar is wanneer u bent aangemeld bij de container en wanneer u zich op uw hoofdsysteem bevindt. Het zal helpen om fouten te voorkomen.

echo debian-sid > /etc/hostname

Sluit de Debian Sid-container af:

exit

Debian Sid-container virtueel opstarten met systemd-nspawn

.commando kan worden gebruikt chroot Eenvoudig om in deze container te komen, maar systeemd-nspawn Het heeft sterkere isolatiemethoden. Dit voorkomt beter dat de container per ongeluk in uw hoofdsysteem "lekt". Bovendien bevat de tool een virtuele tuimelschakelaar. Wat dit doet, is een echte bootstrap van een Debian Sid-installatie simuleren. Dit start een achtergrondproces waarvoor sommige applicaties mogelijk correct moeten werken (bijv. dbus).

Start de Debian Sid-installatie op:

sudo systemd-nspawn --boot -D debian-sid/
Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu - Linux

Log in met de eerder gekozen gebruikersnaam en wachtwoord.

Installeer en voer de gewenste software uit

Stel dat u GIMP Photo Editor wilt installeren:

sudo apt install gimp

Sluit je container zodat je opnieuw kunt opstarten met alle nieuwe dingen geïnstalleerd (zoals dbus-afhankelijkheden):

sudo systemctl poweroff

Als je klaar bent met het werken met de container, is dit het commando dat je moet gebruiken om op te starten.

GIMP is een grafische applicatie, dus het heeft een grafische server nodig. Om technische redenen werkt dit niet in uw container, maar wel op uw hoofdsysteem. Voer dit uit op het hoofdbesturingssysteem (niet in de container):

echo $DISPLAY

Mogelijk krijgt u een antwoord als: 0.0.

Start de container opnieuw op:

sudo systemd-nspawn --boot -D debian-sid/

Vertel de container na het inloggen waar hij het scherm kan vinden.

export DISPLAY=:0.0

U dient te vervangen door: 0.0 als u een ander antwoord heeft.

Dit werkt alleen met een grafische server Xorg. Als je gebruikt Wayland , moet u mogelijk het bovenstaande doen met de variabele WAYLAND_DISPLAY in plaats van DISPLAY. Als dat niet werkt, gebruik dan Xorg Tijdelijk via de login manager opties.

Nu kun je gimp uitvoeren:

gimp
Een veilige manier om systeemgecompromitteerde applicaties uit te voeren op Debian en Ubuntu - Linux

Vind het niet erg om enkele waarschuwingen in Terminal te krijgen. U kunt deze op elk systeem krijgen wanneer u een grafische toepassing start vanuit Terminal. Het is een natuurproduct. Je ziet het meestal niet, omdat je apps meestal start vanuit het grafische opstartprogramma.

Conclusie

Het kan moeilijk zijn om op dit punt te komen, maar als je eenmaal klaar bent, is het eenvoudig om nieuwe software te installeren. Start gewoon de container op, installeer apt, bekijk de export, voer de app uit. Als je eenmaal alles hebt wat je nodig hebt, hoef je alleen maar af en toe te upgraden. doe het met apt update && apt upgrade. Soms moet u misschien gebruiken apt update && een volledige upgrade na het vorige commando.

Ga naar de bovenste knop