Вопрос или проблема
Я вошел в свою учетную запись Google в настройках Ubuntu 22.04. Ссылка на мой Google Drive появляется в Nautilus. Я могу открывать фотографии и документы, но когда я пытаюсь открыть PDF-файлы, я получаю сообщение об ошибке: “Невозможно открыть документ “[file:// и т.д.] … Ошибка при открытии файла … Доступ запрещен.
Как мне решить эту проблему? Я искал в интернете и в основном нахожу информацию о десктопной версии Google Drive.
Я бы не рекомендовал изменять настройки AppArmor, так как это критически важная функция безопасности ядра Linux, и это временное решение, а не долговечное решение.
Я решил эту проблему, переустановив Просмотрщик документов (Evince), но вместо использования дистрибутива .deb от Ubuntu установил его как Flatpak (из Flathub). Песочница дистрибутива Flatpak, похоже, не сталкивается с этой проблемой с правами AppArmor.
- Вам нужно удалить текущую установку пакета.
sudo apt-get remove evince
- Если вы еще этого не сделали, вам нужно установить и активировать Flatpak.
sudo apt install flatpak
- Активируйте репозиторий Flathub.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
- Наконец, снова установите Просмотрщик документов (в качестве пакета дистрибутива Flatpak).
flatpak install flathub org.gnome.Evince
Это проблема с Просмотрщиком документов (Evince), а не с Nautilus
Отключите один профиль
sudo ln -s /etc/apparmor.d/usr.bin.evince /etc/apparmor.d/disable/
Если это не сработает, вы можете установить просмотрщик документов atril и установить его как ваш основной, это должно сработать.
Это также происходит с новой установкой Ubuntu 24.04.
Как указал @Omid Khalili в комментарии, вы можете просто переустановить evince
с помощью snap:
sudo apt remove evince
sudo snap install evince
Это устраняет “доступ запрещен” для Google Drive, но не для Cryptomator, в случае если вы тоже его используете.
обновление: sudo snap install evince
похоже, устраняет проблему только на Ubuntu 24.04 до перезагрузки, по крайней мере, ошибка возвращается через несколько дней.
Это, по сути, проблема apparmor
, как заметил Devansh. Все еще присутствует в 24.04. Лично я бы не отключал защиту полностью, evince
используется часто, и вы никогда не знаете…
Итак, что я сделал: попытался выяснить, почему это не работает. Я выполнил (вам нужно установить apparmor-utils
для этого) команду, чтобы установить конкретный профиль в режим жалобы, чтобы он разрешал операцию, но записывал это в журнал.
sudo aa-complain usr-bin.evince
И да, это сработало. Логи (смотрите с помощью journalctl
) говорят (отредактировано для конфиденциальности)
audit: type=1400 audit(1724748978.556:314): apparmor="ALLOWED" operation="connect" class="file" profile="/usr/bin/evince" name="/run/user/1001/gvfsd/socket-MqrSttuD" pid=31918 comm="evince" requested_mask="wr" denied_mask="wr" fsuid=1001 ouid=1001
audit: type=1400 audit(1724748978.571:316): apparmor="ALLOWED" operation="open" class="file" profile="/usr/bin/evince" name="/run/user/1001/gvfs/google-drive:host=gmail.com,user=xxx.yyy/0ANkkkkkkJaUk9PVA/llllll
Как видите, он запрещал доступ к директориям /run/user/… .
Мое решение заключалось в том, чтобы отредактировать (как root) /etc/apparmor.d/local/usr.bin.evince
(в принципе, он должен быть там, пустым, и должен выжить после обновлений, но посмотрим) добавив
# разрешить доступ к google drive и другим общим файлам
owner /run/user/*/gvfs/** rw,
owner /run/user/*/gvfsd/** rw,
Затем вам необходимо перезагрузить профили:
sudo service apparmor reload
и снова включить его
sudo aa-enforce usr.bin.evince
…и, в принципе, все работает должным образом, сохраняя защиту, которую предоставляет AppArmor для других файлов.
Обратите внимание, что это, вероятно, ошибка конфигурации: я думаю, что директории под `/run/user/UID/` должны быть разрешены по умолчанию.
Я столкнулся с этой проблемой, когда открытие PDF-файлов привело к отказу в доступе. Я обновил evince до последней версии (evince-common all 46.3.1-0ubuntu1
, evince amd64 46.3.1-0ubuntu1
), и это сработало!
Таким образом, на практике я сделал следующее:
sudo apt update
sudo apt upgrade evince evince-common
.
Ответ или решение
Как решить проблему доступа к PDF-файлам в Google Drive через Nautilus на Ubuntu 22.04
Если вы столкнулись с проблемой открытия PDF-файлов в Google Drive через Nautilus на Ubuntu 22.04 и получаете сообщение об ошибке "Доступ запрещён", проблема, скорее всего, связана с настройками безопасности, в частности, с AppArmor. В этой статье я расскажу о нескольких методах решения этой проблемы.
Проблема
При попытке открыть PDF-файл из Google Drive в Nautilus возникает ошибка, сообщающая о запрете доступа. Файлы форматов изображений или документов открываются без проблем, что указывает на потенциальную проблему, связанную исключительно с обработкой PDF. Наиболее вероятной причиной является то, что политика безопасности приложений (AppArmor) не позволяет программе Evince (представляющей собой стандартный просмотрщик документов в Ubuntu) получить доступ к файловой системе, использующей Gvfs.
Основные решения
1. Переустановка Evince через Flatpak
Один из наиболее надёжных способов обойти ограничения AppArmor — это переустановить Evince как Flatpak. Этот метод работает, так как Flatpak использует собственные механизмы безопасности, которые не конфликтуют с настройками AppArmor.
Шаги для выполнения:
-
Удалите текущее стандартное приложение Evince:
sudo apt-get remove evince
-
Установите Flatpak, если он еще не установлен:
sudo apt install flatpak
-
Активируйте репозиторий Flathub:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-
Установите Evince через Flatpak:
flatpak install flathub org.gnome.Evince
2. Изменение профиля AppArmor для Evince
Если вы не хотите использовать Flatpak, вы можете отредактировать профиль AppArmor для Evince, чтобы разрешить доступ к нужным файлам.
Шаги для выполнения:
-
Переключите профиль Evince в режим «жалобы», чтобы логировать нарушения:
sudo aa-complain usr.bin.evince
-
Добавьте нужные разрешения в локальный профиль AppArmor. Откройте файл:
sudo nano /etc/apparmor.d/local/usr.bin.evince
И добавьте следующие строки:
# Разрешить доступ к Google Drive и другим общим файлам owner /run/user/*/gvfs/** rw, owner /run/user/*/gvfsd/** rw,
-
Перезагрузите профили AppArmor:
sudo service apparmor reload
-
Убедитесь, что профиль Evince снова активен:
sudo aa-enforce usr.bin.evince
3. Обновление Evince
Если вы используете устаревшую версию Evince, попробуйте обновить её до последней версии, так как это может исправить проблемы доступа.
Шаги для выполнения:
sudo apt update
sudo apt upgrade evince evince-common
Заключение
В этой статье описаны несколько методов решения проблемы с доступом к PDF-файлам в Google Drive через Nautilus на Ubuntu 22.04. Наиболее надежный способ заключается в переустановке Evince как Flatpak, но вы также можете настроить AppArmor или обновить Evince до последней версии. Выбор метода зависит от ваших предпочтений и требований к безопасности. Если ни один из методов не помогает, рассмотрите возможность использования альтернативных просмотрщиков документов, таких как Atril, который работает без подобных проблем.