O aplicativo Snap não vê arquivos de outra partição

14

Eu instalei o pacote snap do KeePassXC no Ubuntu 17.10. Eu tenho vários sistemas linux instalados na mesma unidade, então criei a maioria das minhas pastas pessoais como ~ / Documents criados como links para uma partição ext4 separada (os usuários têm o mesmo uid para que as permissões estejam corretas). Tentei abrir o banco de dados das minhas senhas que tenho dentro do Documents, mas o keepassxc não pode ver nenhum arquivo dentro do Documents. Se eu colocar o arquivo na minha pasta pessoal, ele será exibido.

Os pacotes snap podem encontrar arquivos fora da minha pasta pessoal? Alguma maneira de fazer o KeePassXC (e os demais pacotes snap) acessarem os arquivos na minha partição ext4 separada (talvez alguma configuração em algum lugar)?

Thanos Apostolou
fonte
Acho que os links físicos são proibidos de cruzar partições!
George Udosen
2
George, suspeito que sejam links simbólicos.
Kyle

Respostas:

14

Snaps normalmente são confinados. Por padrão, os snaps podem acessar nada além de suas próprias áreas graváveis, mas podem obter permissões por meio de interfaces. Existem duas interfaces que fornecem a capacidade de acessar arquivos além do padrão: a homeinterface e a removable-mediainterface. Presumo que o KeePassXC use a homeinterface, que é como você pode acessar ~/Documents. Talvez até use a removable-mediainterface, mas isso cobre apenas coisas montadas /media. Se suas outras partições estiverem montadas em outro lugar, o snap não terá permissão para seguir os links simbólicos.

As maneiras de fazer isso funcionar, ordenadas por dificuldade:

  1. Monte as partições no diretório inicial em vez de simbolizá-las.
  2. Monte as partições /mediae garanta que o KeePassXC use a removable-mediainterface. Esta pode ser uma mudança a montante, mas pequena.
  3. Mude o KeePassXC para um encaixe clássico, deixando-o estritamente restrito. Essa é uma mudança maior e o upstream pode não estar interessado nela.

Atualização: O KeyPassXC snapcraft.yamlestá aqui . Parece que ele já tem a removable-mediainterface. Tudo o que você precisa fazer para seguir (2) é conectá-lo (não é automaticamente conectado):

$ sudo snap connect keepassxc:removable-media
Kyle
fonte
Thx muito !! Realmente boa explicação e o comando sudo snap connect keepassxc:removable-mediafez o truque !!
Thanos Apostolou
2
de erro: Snap "keepassxc" não tem ficha com o nome "de mídia removível"
Erdnase
2
@Erdnase o keepassxc está instalado?
Tahlor 21/03/19
0

Aqui está uma solução rápida para fazer com que um aplicativo de snap se comporte como uma instalação clássica, ou seja, sem confinamento.

Basta criar um link simbólico para o binário em / usr / local / bin, da seguinte maneira:

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

(Surpreendentemente, este aplicativo específico está sendo configurado com "confinement: strict", o que é muito irritante porque, por enquanto, não funcionará em arquivos de outros sistemas de arquivos.)

Pierre Thibaudeau
fonte
Essa é uma péssima idéia - executar um binário rapidamente sem usar um aplicativo que ele define frequentemente falha porque não obtém todas as variáveis ​​de ambiente que ele espera. Mesmo se for executado, ficará confinado e acabará gravando dados onde não deveria.
K19