Die Snap-Anwendung sieht keine Dateien von einer anderen Partition

14

Ich habe das KeePassXC-Snap-Paket unter Ubuntu 17.10 installiert. Ich habe mehrere Linux-Systeme auf demselben Laufwerk installiert, daher habe ich die meisten meiner Home-Ordner wie ~ / Documents als Links zu einer separaten ext4-Partition erstellt (Benutzer haben dieselbe UID, sodass die Berechtigungen korrekt sind). Ich habe versucht, die Datenbank meiner Passwörter zu öffnen, die sich in Dokumenten befindet, aber keepassxc kann keine Dateien in Dokumenten sehen. Wenn ich die Datei in meinen Home-Ordner lege, wird sie angezeigt.

Können Snap-Pakete Dateien außerhalb meines Home-Ordners finden? Gibt es eine Möglichkeit, KeePassXC (und die restlichen Snap-Pakete) auf die Dateien auf meiner separaten ext4-Partition zugreifen zu lassen (möglicherweise irgendwo eine Konfiguration)?

Thanos Apostolou
quelle
Ich denke, dass es harten Links verboten ist, Partitionen zu überqueren!
George Udosen
2
George, ich vermute, sie sind Symlinks.
Kyle

Antworten:

14

Schnappschüsse sind normalerweise begrenzt. Standardmäßig können Snaps nur auf ihre eigenen beschreibbaren Bereiche zugreifen, sie können jedoch über Schnittstellen Berechtigungen erhalten. Es gibt zwei Schnittstellen, über die über den Standard hinaus auf Dateien zugegriffen werden kann: die homeSchnittstelle und die removable-mediaSchnittstelle. Ich gehe davon aus, dass KeePassXC die homeSchnittstelle verwendet, auf die Sie zugreifen können ~/Documents. Vielleicht wird sogar die removable-mediaSchnittstelle verwendet, aber das deckt nur Dinge ab, in die eingebunden ist /media. Wenn Ihre anderen Partitionen an anderer Stelle bereitgestellt werden, hat der Snap keine Berechtigung, den Symlinks zu folgen.

Die Wege, um diese Arbeit zu machen, geordnet nach Schwierigkeitsgrad:

  1. Hängen Sie die Partitionen in Ihr Home-Verzeichnis ein, anstatt sie zu verknüpfen.
  2. Hängen Sie die Partitionen in ein /mediaund stellen Sie sicher, dass KeePassXC die removable-mediaSchnittstelle verwendet. Dies kann eine vorgelagerte Änderung sein, aber eine kleine.
  3. Verwandeln Sie KeePassXC in einen klassischen Snap, wodurch es nicht mehr streng beschränkt bleibt. Dies ist eine größere Änderung, und Upstream ist möglicherweise nicht daran interessiert.

Update: Der KeyPassXC snapcraft.yamlist da . Sieht so aus, als hätte es bereits die removable-mediaSchnittstelle. Alles, was Sie tun müssen, um (2) zu folgen, ist, es zu verbinden (es wird nicht automatisch verbunden):

$ sudo snap connect keepassxc:removable-media
Kyle
quelle
Vielen Dank!! Wirklich gute Erklärung und der Befehl sudo snap connect keepassxc:removable-mediahat es geschafft !!
Thanos Apostolou
2
Fehler: Snap "keepassxc" hat keinen Stecker mit dem Namen "Wechselmedien"
Erdnase
2
@Erdnase ist keepassxc installiert?
Tahlor
0

Hier ist eine schnelle Lösung, mit der sich eine Snap-Anwendung wie eine klassische Installation verhält, dh ohne Einschränkung.

Erstellen Sie einfach einen Symlink zur Binärdatei in / usr / local / bin wie folgt:

/ usr / local / bin / pdftk -> / snap / pdftk / current / usr / bin / pdftk

(Überraschenderweise wird diese spezielle Anwendung mit "confinement: strict" eingerichtet, was sehr ärgerlich ist, da sie bei Dateien aus anderen Dateisystemen nicht funktioniert.)

Pierre Thibaudeau
quelle
Dies ist eine schlechte Idee - das Ausführen einer Binärdatei aus einem Snap heraus ohne Verwendung einer von ihr definierten App schlägt häufig fehl, da nicht alle erwarteten Umgebungsvariablen abgerufen werden. Selbst wenn es ausgeführt wird, ist es nicht begrenzt und schreibt Daten dort, wo es nicht sein soll.
Kyle