Пользователь Linux не может получить доступ к директории mergerfs, к которой у него уже есть права доступа.

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

Я использую Proxmox на базе Debian 12 (bookworm).

В качестве пользователя root я установил владельца для директории ‘/data’ на berdux:berdux и даже установил разрешения на 777.

Затем я смонтировал 4 диска в эту папку с помощью mergerfs (пользователь berdux снова имеет полный доступ и разрешения к этим монтированиям ZFS).

mergerfs -o cache.files=partial,dropcacheonclose=true,category.create=mfs /D2TBa/2TBa:/D2TBb/2TBb:/D4TBa/4TBa:/D4TBb/4TBb /data 

Затем я переключился на пользователя berdux (su berdux) и потерял доступ к указанной папке.

Что я вижу с помощью ls -l от имени root:

drwxrwxrwx 3 berdux berdux 3 Sep 14 10:56 data

А затем с помощью ls -l от имени пользователя berdux:

d????????? ? ? ? ? ? data

Я пытался запустить команду mergerfs от имени пользователя berdux с помощью sudo и пытался добавить её в fstab (и я перезагружал несколько раз), но ничего не меняется.

Я также хочу поделиться этой папкой через samba, но это невозможно, пока у пользователя нет к ней доступа.

Это не ошибка. Не используются подходящие аргументы. То есть… allow_other. Вам нужно использовать документацию для используемой версии. Более новые версии устанавливают значение автоматически. Посмотрите документацию.

Я нашёл решение, вероятно, в стандартной версии mergerfs в репозитории Debian (2.33.5) была ошибка.

Я вручную установил последнюю версию (2.37.1), и это сработало.

Отвечаю, так как у меня нет репутации в этом стеке, чтобы комментировать.

Спасибо, что обновили информацию о вашем исправлении, Джордж, и объяснили это trapexit, год спустя, у меня была такая же проблема, надеюсь, это поможет другим и в будущем.

Последний Ubuntu 24.10 (Oracular) по-прежнему кажется включает эту же старую версию 2.33.5, и установка последнего deb (mergerfs_2.40.2.ubuntu-noble_amd64) тоже исправила это для меня.

Симптомы: как обычный пользователь, я мог нормально ls исходные диски, но не точку монтирования mergerfs. root мог нормально просматривать все, и показывал одинаковые (755) разрешения.

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

Проблема с доступом пользователя к директории, смонтированной с помощью mergerfs, может вызвать затруднения, особенно когда все необходимые разрешения установлены. В данном случае, давайте погрузимся в детали этой проблемы, чтобы понять, почему пользователь не может получить доступ к директории, несмотря на установленные права.

Проблема

Пользователь системы с именем berdux не имеет доступа к директории /data, которая должна быть смонтирована с использованием mergerfs. Хотя вы установили права доступа на директорию в 777 и сменили владельца на berdux:berdux, пользователь продолжает видеть символы d?????????, что указывает на невозможность получения информации о файле.

Возможные причины

  1. Проблемы с правами доступа: Даже при установленных правах доступа на 777, могут существовать дополнительные факторы, ограничивающие доступ. Например, если mergerfs не настроен правильно, это может привести к проблемам доступа для обычных пользователей.

  2. Опции монтирования: Стандартные параметры монтирования mergerfs могут не обеспечивать нужную конфигурацию для доступа всех пользователей. Например, если параметр allow_other не задан, пользователи, не являющиеся владельцами файлов, могут столкнуться с ограничениями.

  3. Версия mergerfs: Устаревшая версия mergerfs может содержать известные ошибки и ограничения. В вашем случае, версия 2.33.5 действительно могла не поддерживать необходимые функции для корректного доступа.

Решение проблемы

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

  1. Обновление mergerfs:

    • Загрузите последнюю версию mergerfs (например, 2.40.2 или более позднюю) из официального репозитория.
    • Установите обновление:
      sudo dpkg -i mergerfs_2.40.2.ubuntu-noble_amd64.deb
  2. Настройка параметров монтирования:

    • При монтировании mergerfs используйте параметр allow_other, чтобы разрешить доступ другим пользователям:
      mergerfs -o allow_other,cache.files=partial,dropcacheonclose=true,category.create=mfs /D2TBa/2TBa:/D2TBb/2TBb:/D4TBa/4TBa:/D4TBb/4TBb /data
  3. Проверка прав доступа:

    • После выполнения этих шагов, выполните команду ls -l /data под пользователем berdux, чтобы убедиться, что доступ восстановлен и директория отображается корректно.

Заключение

Следуя вышеописанным шагам, вы должны восстановить доступ к папке /data для пользователя berdux. Так как проблема связана с устаревшей версией и неправильными параметрами монтирования, важно держать систему и её компоненты в актуальном состоянии, чтобы избежать подобных ситуаций в будущем. Если возникнут дополнительные проблемы, рекомендуется обратиться к документации mergerfs и сообществу пользователей, которые могут предоставить актуальные советы и решения.

Таким образом, надеюсь, данная информация будет полезной для решения вашей проблемы с доступом к директории в среде Linux.

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

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