Открытие PDF-файлов Доступ запрещён Google Drive в Nautilus (Файлы)

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

Я вошел в свою учетную запись Google в настройках Ubuntu 22.04. Ссылка на мой Google Drive появляется в Nautilus. Я могу открывать фотографии и документы, но когда я пытаюсь открыть PDF-файлы, я получаю сообщение об ошибке: “Невозможно открыть документ “[file:// и т.д.] … Ошибка при открытии файла … Доступ запрещен.

Как мне решить эту проблему? Я искал в интернете и в основном нахожу информацию о десктопной версии Google Drive.

Я бы не рекомендовал изменять настройки AppArmor, так как это критически важная функция безопасности ядра Linux, и это временное решение, а не долговечное решение.

Я решил эту проблему, переустановив Просмотрщик документов (Evince), но вместо использования дистрибутива .deb от Ubuntu установил его как Flatpak (из Flathub). Песочница дистрибутива Flatpak, похоже, не сталкивается с этой проблемой с правами AppArmor.

  1. Вам нужно удалить текущую установку пакета.
sudo apt-get remove evince
  1. Если вы еще этого не сделали, вам нужно установить и активировать Flatpak.
sudo apt install flatpak
  1. Активируйте репозиторий Flathub.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  1. Наконец, снова установите Просмотрщик документов (в качестве пакета дистрибутива 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.

Шаги для выполнения:

  1. Удалите текущее стандартное приложение Evince:

    sudo apt-get remove evince
  2. Установите Flatpak, если он еще не установлен:

    sudo apt install flatpak
  3. Активируйте репозиторий Flathub:

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
  4. Установите Evince через Flatpak:

    flatpak install flathub org.gnome.Evince

2. Изменение профиля AppArmor для Evince

Если вы не хотите использовать Flatpak, вы можете отредактировать профиль AppArmor для Evince, чтобы разрешить доступ к нужным файлам.

Шаги для выполнения:

  1. Переключите профиль Evince в режим «жалобы», чтобы логировать нарушения:

    sudo aa-complain usr.bin.evince
  2. Добавьте нужные разрешения в локальный профиль AppArmor. Откройте файл:

    sudo nano /etc/apparmor.d/local/usr.bin.evince

    И добавьте следующие строки:

    # Разрешить доступ к Google Drive и другим общим файлам
    owner /run/user/*/gvfs/**       rw,
    owner /run/user/*/gvfsd/**      rw,
  3. Перезагрузите профили AppArmor:

    sudo service apparmor reload
  4. Убедитесь, что профиль 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, который работает без подобных проблем.

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

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