Приложение Snap не видит файлы из другого раздела


15

Я установил пакет привязки KeePassXC на Ubuntu 17.10. У меня на одном диске установлено несколько систем linux, поэтому я создал большинство моих домашних папок, таких как ~ / Documents, в виде ссылок на отдельный раздел ext4 (у пользователей одинаковый uid, поэтому разрешения правильные). Я попытался открыть базу данных своих паролей, которая у меня есть внутри Documents, но keepassxc не может видеть файлы внутри Documents. Если я положу файл в свою домашнюю папку, он увидит его.

Могут ли пакеты Snap найти файлы вне моей домашней папки? Есть ли какой-нибудь способ заставить KeePassXC (и остальные пакеты оснастки) получить доступ к файлам в моем отдельном разделе ext4 (может быть, где-нибудь в конфигурации)?


Я думаю, что жесткие ссылки запрещено пересекать разделы!
Джордж Удосен

2
Джордж, я подозреваю, что это символические ссылки.
Кайл

Ответы:


15

Снимки обычно ограничены. По умолчанию привязки не могут получить доступ ни к чему, кроме собственных записываемых областей, но они могут получать разрешения посредством интерфейсов. Есть два интерфейса, которые обеспечивают возможность доступа к файлам за пределами по умолчанию: homeинтерфейс и removable-mediaинтерфейс. Я предполагаю, что KeePassXC использует homeинтерфейс, как вы можете получить доступ ~/Documents. Возможно, он даже использует removable-mediaинтерфейс, но он охватывает только то, что установлено в /mediaили /mnt. Если ваши другие разделы смонтированы в другом месте, оснастка не будет иметь права следовать символическим ссылкам.

Способы сделать эту работу упорядочены по сложности:

  1. Смонтируйте разделы в свой домашний каталог, а не ставьте им символические ссылки.
  2. Смонтируйте разделы /mediaи убедитесь, что KeePassXC использует removable-mediaинтерфейс. Это может быть восходящим изменением, но маленьким.
  3. Измените KeePassXC на классическую оснастку, тем самым сделав ее более не ограниченной. Это более масштабное изменение, и апстрим может не заинтересоваться им.

Обновление: KeyPassXC snapcraft.yamlнаходится здесь . Похоже, у него уже есть removable-mediaинтерфейс. Все, что вам нужно сделать, чтобы следовать (2), это подключить его (оно не подключается автоматически):

$ sudo snap connect keepassxc:removable-media

Большое спасибо!! Действительно хорошее объяснение, и команда sudo snap connect keepassxc:removable-mediaдобилась цели !!
Танос Апостолоу

2
ошибка: оснастка «keepassxc» не имеет плагина с именем «съемный носитель»
Erdnase

2
@Erdnase установлено keepassxc?
Тахлор

Удивительный ! Но ни один из моих разделов не смонтирован под носитель, носитель предназначен для съемного хранилища ... Как могла быть разработана такая неудобная система
yota

0

Вот быстрое исправление, чтобы приложение с привязкой работало как классическая установка, то есть без ограничения.

Просто создал символическую ссылку на двоичный файл в / usr / local / bin, например так:

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

(Удивительно, но это конкретное приложение настраивается с «confinement: strict», что очень раздражает, потому что оно не будет работать с файлами из других файловых систем.)


Это плохая идея - запускать двоичный файл из оснастки без использования приложения, которое он определяет, часто происходит сбой, поскольку он не получает всех ожидаемых переменных среды. Даже если он запустится, он будет неограниченным и в конечном итоге будет записывать данные там, где это не предполагается.
Кайл,

0

Просто чтобы добавить ответ Кайла , некоторые пакеты из Ubuntu Software Store также нуждаются в этой команде.

В моем случае kdenlive не мог прочитать мой другой жесткий диск. Сработала следующая команда:

sudo snap connect kdenlive:removable-media
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.