La aplicación Snap no ve archivos de otra partición

14

He instalado el paquete Snap KeePassXC en Ubuntu 17.10. Tengo varios sistemas Linux instalados en la misma unidad, por lo que he creado la mayoría de mis carpetas de inicio como ~ / Documentos creados como enlaces a una partición ext4 separada (los usuarios tienen el mismo uid, por lo que los permisos son correctos). Traté de abrir la base de datos de mis contraseñas que tengo dentro de Documentos, pero keepassxc no puede ver ningún archivo dentro de Documentos. Si pongo el archivo en mi carpeta de inicio, entonces lo ve.

¿Los paquetes instantáneos pueden encontrar archivos fuera de mi carpeta de inicio? ¿Alguna forma de hacer que KeePassXC (y los demás paquetes de complemento) accedan a los archivos en mi partición ext4 separada (tal vez alguna configuración en alguna parte)?

Thanos Apostolou
fuente
¡Creo que los enlaces duros tienen prohibido cruzar particiones!
George Udosen
2
George, sospecho que son enlaces simbólicos.
Kyle

Respuestas:

14

Los snaps son típicamente confinados. Por defecto, las instantáneas no pueden acceder a nada más que a sus propias áreas de escritura, pero pueden obtener permisos a través de interfaces. Hay dos interfaces que brindan la capacidad de acceder a los archivos más allá del valor predeterminado: la homeinterfaz y la removable-mediainterfaz. Supongo que KeePassXC usa la homeinterfaz, que es cómo puede acceder ~/Documents. Quizás incluso usa la removable-mediainterfaz, pero eso solo cubre cosas montadas /media. Si sus otras particiones están montadas en otro lugar, el complemento no tendrá permiso para seguir los enlaces simbólicos.

Las formas de hacer que esto funcione, ordenadas por dificultad:

  1. Monte las particiones en su directorio de inicio en lugar de simularlas.
  2. Monte las particiones /mediay asegúrese de que KeePassXC use la removable-mediainterfaz. Esto puede ser un cambio aguas arriba, pero pequeño.
  3. Cambie KeePassXC en un complemento clásico, por lo que ya no estará estrictamente limitado. Este es un cambio mayor y es posible que aguas arriba no esté interesado en él.

Actualización: KeyPassXC snapcraft.yamlestá aquí . Parece que ya tiene la removable-mediainterfaz. Todo lo que necesita hacer para seguir (2) es conectarlo (no se conecta automáticamente):

$ sudo snap connect keepassxc:removable-media
Kyle
fuente
¡¡Muchas gracias!! Muy buena explicación y el comando sudo snap connect keepassxc:removable-mediahizo el truco!
Thanos Apostolou
2
error: el complemento "keepassxc" no tiene un conector denominado "medios extraíbles"
Erdnase
2
@Erdnase ¿está instalado keepassxc?
Tahlor
0

Aquí hay una solución rápida para hacer que una aplicación instantánea se comporte como una instalación clásica, es decir, sin confinamiento alguno.

Simplemente creó un enlace simbólico al binario en / usr / local / bin, así:

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

(Sorprendentemente, esta aplicación específica se está configurando con "confinamiento: estricto", lo cual es muy molesto porque, de hecho, no funcionará en archivos de otros sistemas de archivos).

Pierre Thibaudeau
fuente
Esta es una mala idea: ejecutar un binario de forma instantánea sin usar una aplicación que define a menudo fallará porque no obtiene todas las variables de entorno que espera. Incluso si se ejecuta, no estará confinado y terminará escribiendo datos donde se supone que no debe hacerlo.
Kyle