Was ist der klassische Snap-Modus und warum werden einige Snaps ohne diesen Modus nicht installiert (z. B. MS Visual Studio)?

13

Ich habe versucht, MS Visual Studio Code als Snap auf Ubuntu 16.04 mit folgendem Befehl zu installieren:

sudo snap install vscode

aber ich habe folgenden fehler:

error: This revision of snap "vscode" was published using classic confinement and thus may perform
       arbitrary system changes outside of the security sandbox that snaps are usually confined to,
       which put your system at risk.

       If you understand and want to proceed repeat the command including --classic.

Ich möchte wissen, was das --classicFlag macht (nicht nur die manErklärung der Seite) und warum ich den vorherigen Fehler erhalten habe, als ich Visual Studio Code installiert habe.

Danibix
quelle
Ich habe versucht, es über Snap (mit --classic) zu installieren , aber Snap-Berichte error: cannot install "vscode": snap not found. Konnten Sie es installieren?
Betrunkener Meister

Antworten:

10

Sehen Sie sich dieses kurze Video an , in dem die einzelnen in snaps verfügbaren Confinement-Modelle, die Gründe --classicund den Anwendungsfall erläutert werden.


Quellen : Die folgende Dokumentation stammt aus snapcraft.io: Confinement Policies .

streng

Dies ist die Standardsicherheitsrichtlinie für Snaps. Der Snap verfügt nur in seinem eigenen Installationsbereich und in ausgewählten Bereichen über Lese- und / oder Schreibrechte. Es hat Zugriff auf Bibliotheken, die es bündelt und / oder die vom Core- oder Ubuntu-Core-Snap bereitgestellt werden. Erweiterte Rechte können für Schnittstellen gewährt werden, die entweder bei der Installation oder vom Benutzer mit dem Befehl snap connect verbunden werden . Beispielsweise gewährt die Home-Schnittstelle Leserechte im Home-Bereich des Benutzers.

Durch die strikte Beschränkung erhalten Sie die folgenden lesbaren und / oder beschreibbaren Pfade:

  • / snap / snapname / revision (schreibgeschützt, Snap-Installationspfad)
  • / var / snap / snapname / revision (Lesen / Schreiben, revisionsbezogene Daten)
  • / var / snap / snapname / common (Lesen / Schreiben, gemeinsame Daten)
  • / home / $ USER / snap / snapname / revision (lesen / schreiben, Benutzerdaten pro Revision)
  • / home / $ USER / snap / snapname / common (Lesen / Schreiben, gemeinsame Benutzerdaten)

In der Liste der Umgebungsvariablen finden Sie weitere Informationen dazu, was für einen streng begrenzten Snap sichtbar ist und wie Sie auf eine Shell innerhalb des begrenzten Bereichs eines Snaps zugreifen können.

Devmode

Der Entwicklermodus, auch als Devmode bezeichnet, verwendet dieselben Sicherheitsrichtlinien wie die strikte Beschränkung, aber Sicherheitsverweigerungen werden in Warnungen umgewandelt /var/log/syslog(siehe Debuggen ). Dies ist nützlich, wenn Sie eine Anwendung abfangen, um festzustellen, welche Schnittstellen deklariert werden müssen. Snaps im Entwicklermodus können nicht in den Stable- und Candidate-Store- Channels freigegeben werden .

klassisch

Ein Klick in die klassische Beschränkung verhält sich wie eine traditionell gepackte Anwendung mit vollem Zugriff auf das System. Im Gegensatz zu "strict" und "devmode" ist ein klassischer Snap "/" das "/" des Host-Systems und nicht das "/" des Core-Snaps. Snaps, die diese vollständig geöffnete Sicherheitsrichtlinie verwenden, werden im Store manuell überprüft und sind nur auf Systemen zulässig, auf denen snapd auf einer herkömmlichen Linux-Distribution installiert ist , im Gegensatz zum Systemstart von einem Ubuntu Core- Image. Sie können in allen Filialkanälen veröffentlicht werden .

Martin Wimpress
quelle