Ist es möglich, mit einem Klick vollen Festplattenzugriff zu haben?

7

So wie ich es verstehe, muss ein Snap deklarieren, auf welche Schnittstellen er zugreifen muss, und er ist auf diese beschränkt.

Unter https://developer.ubuntu.com/de/snappy/guides/interfaces/ gibt es keine Option für den vollständigen Systemzugriff.

Ich kann verstehen, dass die sichere Beschränkung sehr wichtig ist, aber ich möchte Snaps als einfachen Verteilungsmechanismus für die Sicherung von Duplizitäten verwenden, der in der Lage sein muss, alle Systemdateien zu lesen, um sie zu sichern und Zugriff zu schreiben, wo immer der Benutzer dies wünscht Archivdateien gespeichert.

Ich weiß, dass dies nicht der primäre Anwendungsfall für Snaps ist, aber jetzt, da sie für mehrere Distributionen verwendet werden können und Abhängigkeitsprobleme lösen können, untersuche ich die Idee als Alternative dazu, alle verschiedenen Varianten unseres Pakets generieren zu müssen.

Würden wir in der Lage sein, Schnappschüsse nach unserem Willen zu biegen, oder ist das Format nicht wirklich für Dinge geeignet, die so viel Zugriff benötigen?

Aaron Whitehouse
quelle

Antworten:

5

Ja, Sie möchten eine Schnittstelle, die vollen Zugriff auf eine Festplatte gewährt, und es ist sinnvoll, dass eine solche Schnittstelle vorhanden ist. Es wäre keine Schnittstelle mit automatischer Verbindung, da entweder der Benutzer oder die Person, die ein Gerät mit dem Snap herstellt, das Snap-System explizit anweisen müsste, damit diese Verbindung stattfinden kann, aber die Schnittstelle selbst ist eine vernünftige Anforderung.

Wenn Sie ein Spiel sind, würde ich vorschlagen, dass Sie einen Patch für snapd ausarbeiten, den wir in den Code einbinden werden.

Mark Shuttleworth
quelle
Vielen Dank, Mark. Gut zu wissen, dass selbst die SABDFL FLS nicht übertrifft! Wenn Sie fragen, kann ich das mal ausprobieren. Ich werde Kyles Vorschlag folgen und versuchen, zuerst mit --devmode einen brauchbaren Snap zusammenzustellen. Wenn ich das zum Laufen bringen kann, kann ich versuchen, snapd zu patchen, damit es richtig funktioniert. Ich wollte nicht die Zeit damit verbringen, den Snap zu erstellen, wenn es keinen Spielraum für eine ordnungsgemäße Unterstützung des vollständigen Festplattenzugriffs gab.
Aaron Whitehouse
Gern geschehen, schauen Sie sich die vorhandenen Schnittstellen an, chatten Sie bei Bedarf mit zyga oder mvo in #snappy auf freenode, um Zeiger zu erhalten, und pingen Sie mich bei Bedarf auch dort an. Ich werde Ihren Patch einbinden. Eine Schnittstelle beizutragen ist eine großartige Möglichkeit Helfen Sie anderen, wie Sie sagen, mehr Apps benötigen diese Funktion. Wir sehen uns auf der Snapcraft-Liste :)
Mark Shuttleworth
Für alle, die in den Archiven darauf stoßen (es ist zum Zeitpunkt des Schreibens immer noch die am besten gewählte Antwort), lesen Sie bitte die neue Antwort im --classic-Modus, die zum Zeitpunkt der Frage noch nicht vorhanden war.
Aaron Whitehouse
1

Du kannst das; Sie möchten im Wesentlichen, dass Ihr Snap nicht eingeschränkt wird. Dies erhalten Sie, wenn Sie einen Snap im DevMode installieren:

sudo snap install --devmode <snap>

Sie können weiterhin Devmode-Snaps in den Store hochladen, aber die Art und Weise, wie Sie sie mit anderen teilen, ist etwas eingeschränkter (z. B. können Sie sie nicht in stabilen Kanälen platzieren).

Kyle
quelle
Danke Kyle. Ich war mir der Devmode-Snaps bewusst, wollte aber nicht die Einschränkungen für das Teilen. Ich bin mir auch nicht sicher, ob ich möchte, dass die Anwendung nicht eingeschränkt wird, da ich froh bin, dass sie von anderen Schnittstellen (x11, pulseaudio usw.) blockiert werden. Das einzige, was ich uneingeschränkt brauche, ist der Zugriff auf die Festplatte. So wie ich es verstanden habe, sollten Druckknöpfe die ppas langfristig ersetzen. Wenn ja, würde ich erwarten, dass andere diese Schnittstelle irgendwann erstellen müssen.
Aaron Whitehouse
Wenn Sie vollen Zugriff auf die Festplatte haben, gibt es wirklich keine Begrenzung für den Schaden, den Sie verursachen können. SSH-Schlüssel, Kennwörter, Daten anderer Anwendungen, vertrauenswürdige Sitzungs- und Systemdienste usw. Snaps können PPAs auf lange Sicht ersetzen. Wenn dies jedoch der Fall ist, liegt dies daran, dass sie eine Verbesserung darstellen und nicht daran, dass sie dieselben gemeinsam nutzen Fähigkeiten.
Kyle
1

Seit ich meine Frage gestellt habe, hat Snapcraft eine neue Beschränkungsoption erhalten: "klassisch".

Von: https://docs.snapcraft.io/snap-confinement

Klassisch Ermöglicht den Zugriff auf die Ressourcen Ihres Systems auf die gleiche Weise wie herkömmliche Pakete. Zum Schutz vor Missbrauch erfordert das Veröffentlichen eines klassischen Snaps eine manuelle Genehmigung, und für die Installation ist das Befehlszeilenargument --classic erforderlich.

Duplicity hat jetzt die klassische Beschränkung genehmigt und wir haben begonnen, auf diese Weise Schnappschüsse zu erstellen.

(Siehe auch: https://github.com/snapcore/snapd/pull/6436, in dem möglicherweise eine neue Schnittstelle für Sicherungsanwendungen hinzugefügt wird, für die nur Lesezugriff auf das gesamte Dateisystem erforderlich ist.)

Aaron Whitehouse
quelle