L'application Snap ne voit pas les fichiers d'une autre partition

14

J'ai installé le package snap KeePassXC sur Ubuntu 17.10. J'ai plusieurs systèmes linux installés sur le même lecteur, j'ai donc créé la plupart de mes dossiers personnels comme ~ / Documents créés en tant que liens vers une partition ext4 distincte (les utilisateurs ont le même uid, les autorisations sont donc correctes). J'ai essayé d'ouvrir la base de données de mes mots de passe que j'ai dans Documents, mais keepassxc ne peut voir aucun fichier dans Documents. Si je place le fichier dans mon dossier personnel, il le voit.

Les packages Snap peuvent-ils trouver des fichiers à l'extérieur de mon dossier de départ? Est-il possible de faire en sorte que KeePassXC (et les autres packages d'accrochage) accèdent aux fichiers sur ma partition ext4 séparée (peut-être une configuration quelque part)?

Thanos Apostolou
la source
Je pense que les liens durs sont interdits de traverser les partitions!
George Udosen
2
George, je suppose que ce sont des liens symboliques.
Kyle

Réponses:

14

Les snaps sont généralement confinés. Par défaut, les snapshots ne peuvent accéder qu'à leurs propres zones d'écriture, mais ils peuvent obtenir des autorisations via des interfaces. Il existe deux interfaces qui permettent d'accéder à des fichiers au-delà de la valeur par défaut: l' homeinterface et l' removable-mediainterface. Je suppose que KeePassXC utilise l' homeinterface, c'est ainsi que vous pouvez accéder ~/Documents. Peut-être qu'il utilise même l' removable-mediainterface, mais cela ne couvre que les éléments montés dans /media. Si vos autres partitions sont montées ailleurs, le composant logiciel enfichable n'aura pas l'autorisation de suivre les liens symboliques.

Les façons de faire ce travail, classées par difficulté:

  1. Montez les partitions dans votre répertoire personnel au lieu de les créer des liens symboliques.
  2. Montez les partitions dans /mediaet assurez-vous que KeePassXC utilise l' removable-mediainterface. Cela peut être un changement en amont, mais un petit.
  3. Transformez KeePassXC en un composant logiciel enfichable classique, ce qui ne le rend plus strictement confiné. Il s'agit d'un changement plus important et en amont peut ne pas être intéressé.

Mise à jour: le KeyPassXC snapcraft.yamlest ici . On dirait qu'il a déjà l' removable-mediainterface. Tout ce que vous devez faire pour suivre (2) est de le connecter (il n'est pas automatiquement connecté):

$ sudo snap connect keepassxc:removable-media
Kyle
la source
Merci beaucoup!! Vraiment une bonne explication et la commande a sudo snap connect keepassxc:removable-mediafait l'affaire !!
Thanos Apostolou du
2
erreur: snap "keepassxc" n'a pas de plugin nommé "amovible-média"
Erdnase
2
@Erdnase est keepassxc installé?
Tahlor
0

Voici une solution rapide pour faire en sorte qu'une application snap se comporte comme une installation classique, c'est-à-dire sans aucun confinement.

Il vous suffit de créer un lien symbolique vers le binaire dans / usr / local / bin, comme ceci:

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

(Étonnamment, cette application spécifique est en train d'être configurée avec "confinement: strict", ce qui est très ennuyeux car, dans ce cas, elle ne fonctionnera pas sur les fichiers d'autres systèmes de fichiers.)

Pierre Thibaudeau
la source
C'est une mauvaise idée - exécuter un binaire à partir d'un composant logiciel enfichable sans utiliser une application qu'il définit échouera souvent car il n'obtient pas toutes les variables d'environnement qu'il attend. Même s'il s'exécute, il ne sera pas confiné et finira par écrire des données là où il n'est pas censé le faire.
Kyle