Ubuntu 12.04 „Precise Pangolin“
Mit Arkose von Stéphane Graber kann man Programme innerhalb einer Sandbox ausführen. Man kann festlegen, ob eine Anwendung das Netzwerk verwenden darf, wie sie auf das Benutzerverzeichnis zugreifen kann und wie viel Festplattenspeicherplatz sie verwenden kann. Arkose benutzt dabei die gleichen Virtualisierungstechniken des Kernels wie LXC. Durch die Verwendung von aufs sind Änderungen am Dateisystem nur in der Sandbox sichtbar.
Arkose kann man ab Ubuntu 11.04 aus den Paketquellen installieren [1]:
arkose
arkose-gui (grafische Oberfläche)
arkose-nautilus (Nautilus-Integration)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install arkose arkose-gui arkose-nautilus
sudo aptitude install arkose arkose-gui arkose-nautilus
Es gibt auch ein "Personal Package Archiv" (PPA) [2], allerdings derzeit kein Paket für Precise
Adresszeile zum Hinzufügen des PPAs:
ppa:arkose-devel/stable
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen bietet die PPA-Beschreibung vom Benutzer/Team arkose-devel.
Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.
Nach dem Aktualisieren der Paketquellen können die oben genannten Pakete installiert werden.
Die Version 1.3.2 enthält unter anderem folgende Neuerungen:
D-Bus wird nach außen weitergeleitet und kann gefiltert werden.
Über PulseAudio kann Sound wiedergegeben werden.
Videogeräte (z.B. Webcam) können verwendet werden.
Es kann ein separater isolierter XServer verwendet werden.
Diese Neuerungen sind aber noch nicht in die herkömmliche graphische Oberfläche integriert und können über den Befehl
arkose-wrapper-gui Konfigurationsdatei
verwendet werden. Beispiele von Konfigurationsdateien findet man im Verzeichnis /usr/share/arkose/wrapper-profiles.
Am einfachsten startet man ein Programm in einer Sandbox, indem man in Nautilus das Programm auswählt und im Kontextmenu "Open in a sandbox" wählt.
In dem Dialogfenster wählt man die Schaltfläche "Ausführen", um das Programm in der Sandbox zu starten.
Anschließend wird man nach dem Benutzerpasswort gefragt, weil zum Erstellen der Sandbox Root-Rechte [3] nötig sind.
Man kann Arkose auch direkt starten und das Eingabefeld selbst ausfüllen.
Beim Programmstart kann man ein paar Einstellungen vornehmen, die Standardeinstellungen sind aber normalerweise ausreichend.
Einstellungen | |
Funktion | Beschreibung |
Network support | Soll die Anwendung kein Zugriff auf das Netzwerk haben, kann man das Häkchen entfernen. |
Real /home directory | Wird dieser Punkt ausgewählt, bleiben die Änderungen, die das Programm im Benutzerverzeichnis macht, beim Programmende erhalten. |
Real /tmp directory | Wird dieser Punkt ausgewählt, bleiben die Änderungen, die das Programm in /tmp/ macht, beim Programmende erhalten. |
Storage type | Wird hier tmpfs gewählt, werden die nur für das Programm sichtbaren Änderungen im Hauptspeicher gehalten, anstatt im Verzeichnis ~/.arkose/ auf der Festplatte. |
Container size | Der maximale Speicherplatz für die Sandbox. |
Über Nautilus ist es nicht möglich Programme zu starten, die z.B. Leerzeichen oder Umlaute im Dateinamen haben, Programme mit Leerzeichen kann man überhaupt nicht starten.
Arkose ist dazu geeignet, ein einzelnes Programm in einer Sandbox auszuführen. Durch die Trennung vom restlichen System hat das Programm dann aber auch keinen Zugriff auf laufende Dienste wie D-Bus, das GNOME-Konfigurationssystem GConf, PolicyKit oder PulseAudio und funktioniert dadurch möglicherweise nur eingeschränkt oder gar nicht. Die Auswirkung kann dann sein, dass keine Töne wiedergegeben werden, Einstellungen nicht beachtet werden oder dass das Programm gar nicht erst startet.
Um eine Sandbox im Terminal [4] zu starten, muss der Befehl mit Root-Rechten [3] ausgeführt werden:
sudo arkose [Optionen]
Optionen | |
Einstellung | Beschreibung |
-c , --command | Ein Programm ausführen |
-h , --home | Die Änderungen im Benutzerverzeichnis bleiben erhalten |
-n , --network | Aktiviert das Netzwerk in der Sandbox |
-s , --size | Speicherplatz in MB (Standard ist 2 auf ext4 und 50% des RAM auf tmpfs) |
-t , --type | Speicherart, mögliche Werte sind ext4 (Standard) und tmpfs . |
-T , --tmp | Die Änderungen in /tmp/ bleiben erhalten. |