Ошибка “Доступ запрещен” при запуске приложений, установленных как пакеты snap – Ubuntu 17.04

Вопрос или проблема

Я получаю ошибку «Доступ запрещен» при запуске приложения snap, когда мой домашний каталог смонтирован на nfs-точке монтирования, которая не позволяет запись от имени root. Это не необычная конфигурация, поэтому я считаю это ошибкой.

Сообщение об ошибке:

не удалось создать каталог пользовательских данных: /home/tcumming/snap/vlc/4: Доступ запрещен

Та же проблема возникла и с ubuntu 16.

Некоторая дополнительная информация по запросу:

Используя “Ubuntu Software”, я устанавливаю приложение snap (например, vlc). Когда я пытаюсь запустить его (из командной строки), я получаю вышеупомянутое сообщение «Доступ запрещен».

Я только что переустановил Ubuntu на машине, поэтому с ОС ничего не делалось. Я сохранил свой uid:gid, чтобы смонтировать свою предыдущую nfs-долю.

Это не проблема с точкой монтирования или nfs. Наша точка монтирования не доступна для записи от root по соображениям безопасности.

Я полагаю, вопрос в том, стоит ли подавать отчет об ошибке? Каковы мои следующие шаги?

Я столкнулся с этим, потому что мой домашний каталог является символической ссылкой с /home/$USER на другую точку монтирования. Я исправил это по предложению из когда /home находится где-то еще, snap не работает.

Короче говоря, вам нужно добавить ваш нестандартный домашний каталог в переменную HOMEDIRS apparmor:

$ sudo dpkg-reconfigure apparmor

или: создайте файл в /etc/apparmor.d/tunables/home.d/, который указывает на точку монтирования вашего домашнего каталога:

@{HOMEDIRS}+=/mnt/hdd/.home/

Затем, для надежности, вы должны удалить кэш apparmor и перезагрузить:

$ sudo rm -f /etc/apparmor.d/cache/* /var/cache/apparmor/snap.*
$ sudo reboot

То же самое происходит в Ubuntu 18.04.

Если домашний каталог пользователя не находится под монтированием /home (или /), то работать с snap невозможно. Мой HOMEDIR был на другом локальном диске SSD, но поскольку он не был смонтирован в /home, каждый пакет, установленный с помощью snap, терпел неудачу.

Поскольку Canonical переходит на поддержку snap, вам придется отказаться от таких приятных вещей, как HOMEDIR на других файловых системах, смонтированных по NFS и т.д.

Может быть, в будущем snap станет более гибким, но это не является приоритетом:
https://forum.snapcraft.io/t/how-can-i-use-snap-when-i-dont-use-home-user/3352/6

Временное решение сейчас – удалить snap и устанавливать вещи из *.tar.gz или из *.deb пакетов.

Вы можете установить разрешения приложений Snap из Центра программного обеспечения.

Следующие шаги протестированы на Ubuntu 20.04 LTS:

  • Откройте Программное обеспечение
  • Выберите вкладку Установленные. Появится список установленного программного обеспечения.
  • Выберите пакет snap, которому нужны повышенные разрешения.
  • В детальном представлении нажмите кнопку ‘Разрешения’.
  • Нажмите переключатель рядом с ‘Чтение/запись файлов на съемных устройствах’.

Этот метод работает для смонтированных жестких дисков.

Ссылки:

Приложения snap по умолчанию изолированы в песочнице для безопасности. Если вы хотите, чтобы приложения snap могли читать/записывать данные в вашем домашнем каталоге, вам следует установить их в классическом режиме. Попробуйте:

rclone install --classic vlc

Это должно заработать для вас.

Если вас беспокоит изоляция приложений, то вам стоит рассмотреть firejail.

Мы используем домен с ренеймингом, поэтому наш путь дом у нас не /home, а /home/MYDOMAINCOMPANY/. Я исправил это, отредактировав /etc/apparmor.d/tunables/home.d/ubuntu с этой строкой:
@{HOMEDIRS}+=/home/MYDOMAINCOMPANY/

После сохранения просто перезапустите некоторые службы:
systemctl restart apparmor.service snapd.apparmor.service snapd.service snapd.socket

Обходное решение с apparmor не сработало для меня. То, что сработало, – это следующие шаги для моего текущего домашнего каталога “/opt/stack”…

mkdir -p /home/stack
редактировать /etc/fstab с "/opt/stack /home/stack none defaults,bind 0 0"
mount -a

“mount -a” сообщает, есть ли какие-либо проблемы с записями в fstab. После внесения изменений в fstab перезагрузка не требуется.

Я наткнулся на эту страницу AskUbuntu после получения ошибки “Доступ запрещен” (доступ к /media) при попытке открыть файл *.srt фильма, хранящегося на USB-накопителе. Необычно, я не нашел здесь действительно простого ответа, но затем я нашел это на странице Github Subsync…

sudo snap connect subsync:removable-media

Так что, если я снова окажусь здесь с той же основной проблемой, я смогу самостоятельно выяснить, как заменить subsync на [другой пакет установленный snap с той же проблемой].

Я не знаю, есть ли какие-либо альтернативы removable-media, которые также могут быть полезны. Но если кто-то знает, то здесь было бы хорошее место, чтобы разместить эту информацию – для меня, а возможно, и для других.

Все непривилегированные пользователи получали эту ошибку со всеми snap в Ubuntu 20.04. Добавление пользователей в группу adm решало проблему. Но это определенно не является решением. Есть идеи, почему приложения snap требуют этого?

Обновление:

Похоже, это было связано с моей конфигурацией. У меня следующие разрешения для /home:

drwxr-x--x 13 root         adm          4096 Sep  1 14:12 /home

А это разрешения, например, для домашнего каталога пользователя:

drwxr-xr-x  7 kubetraining kubetraining 4096 Sep  1 16:39 /home/kubetraining

Очевидно, snap пытается перечислить /home, терпит неудачу и выдает ошибку. Но на самом деле он не должен пытаться перечислить что-либо в /home, так что это, похоже, ошибка.

Я столкнулся с той же проблемой на 20.04, пытаясь установить github cli (gh) через snap для клонирования репозитория по ssh. В записи Ubuntu Software для gh мне нужно было включить ssh-keys: позволяет читать конфигурацию ssh пользователя и ключи.
Также есть опция Доступ к файлам в вашей домашней папке.

настройки gh snap в приложении Ubuntu Software

введите описание изображения здесь

/tmp была символической ссылкой. Сделав /tmp не символической ссылкой, я исправил это для себя.

Я просто хотел оставить комментарий к ответу Фабиана де Бура, но у меня недостаточно репутации.

Его решение решило мою проблему, когда OpenSCAD не открывал файлы на другом диске. Так что такая проблема с ‘Доступ запрещен’ может возникнуть не только с домашним каталогом, находящимся в другом месте, но и с рабочим каталогом, находящимся в другом месте.

В любом случае, упомянутое решение работает.

не удается создать каталог пользовательских данных: /home/tcumming/snap/vlc/4: Доступ запрещен

Если вы получаете эту ошибку только у ldap пользователя, у другого стандартного пользователя snap работает нормально.

Тогда это поможет вам просто запустить.
$ sudo dpkg-reconfigure apparmor

И добавьте ваш ldap домашний каталог, в моем случае это /home/users/

Это решение работает для меня очень хорошо.

Ответ или решение

Ошибка "Permission Denied" при запуске приложений, установленных в виде snap-пакетов на Ubuntu 17.04

Если вы столкнулись с ошибкой "Permission denied", когда пытаетесь запустить приложение, установленное в виде snap-пакета, это может быть связано с конфигурацией вашей системы, особенно если ваша домашняя директория смонтирована на NFS-маршруте, который не позволяет запись от имени root. Эта ситуация может происходить также в Ubuntu 16.04 и более поздних версиях, таких как 18.04, и требует понимания несколько сложных аспектов работы snap и AppArmor.

Понимание проблемы

При установке snap-приложений, таких как VLC, система пытается создать директорию данных пользователя в вашем домашнем каталоге следующим образом:

/home/tcumming/snap/vlc/4

Ошибка "Permission denied" указывает на то, что snap не может создать эту директорию, что, в свою очередь, затрудняет работу приложения. Причина может заключаться в ограничениях, накладываемых системой на доступ к директориям, которые не находятся в стандартных путях, таких как /home.

Основные шаги для решения проблемы

  1. Проверка конфигурации Samba/NFS: Убедитесь, что у вас есть необходимые права доступа к вашему NFS-маршруту. Если вы не можете выполнить запись, это может быть основной причиной возникновения ошибки.

  2. Проверка настроек AppArmor:

    • Snaps используют AppArmor для управления доступом и безопасности. Вам может понадобиться добавить путь вашей нестандартной домашней директории в переменную HOMEDIRS для AppArmor.
    • Выполните следующую команду, чтобы переустановить настройки AppArmor:
      sudo dpkg-reconfigure apparmor
    • Либо создайте файл в /etc/apparmor.d/tunables/home.d/ с содержимым, указанным ниже:
      @{HOMEDIRS}+=/mnt/hdd/.home/
  3. Очистка кеша AppArmor:

    • После внесения изменений необходимо удалить кеш AppArmor и перезагрузить систему:
      sudo rm -f /etc/apparmor.d/cache/* /var/cache/apparmor/snap.*
      sudo reboot
  4. Проверка настройки домашней директории:

    • Если ваша домашняя директория не находится под /home, возможно, вам придется смонтировать её над стандартным местом. Попробуйте выполнить:
      mkdir -p /home/stack
      sudo edit /etc/fstab с добавлением строки: "/opt/stack /home/stack none defaults,bind 0 0"
      mount -a
  5. Изменение прав доступа к /home (если это применимо):

    • Убедитесь, что права доступа к каталогу /home позволяют пользователям видеть свои каталоги:
      drwxr-xr-x  7 username username 4096 Sep  1 16:39 /home/username

Альтернативные решения

Если указанные выше шаги не помогли, рассмотрите возможность установки приложений вне snap. Это можно сделать, скачав .tar.gz или .deb файлы:

  • Установка приложений из стандартных репозиториев:
    sudo apt install application-name

Также рекомендуется следить за обновлениями snap и AppArmor, так как Canonical активно работает над повышением совместимости с нестандартными конфигурациями.

Заключение

Если после всех действий проблема сохраняется, возможно, вам стоит подать отчет об ошибке в систему отслеживания ошибок Ubuntu или snap, так как это может быть неисправленный баг. Ваша ситуация — распространенная проблема среди пользователей, и постоянная поддержка от сообщества может помочь улучшить работу snap-пакетов с нестандартными конфигурациями.

Запоминайте, что snap приложения имеют свои ограничения, и если ваша текущая настройка не позволяет им функционировать должным образом, то разумнее использовать альтернативные способы установки программного обеспечения на вашей системе.

Оцените материал
Добавить комментарий

Капча загружается...