Вопрос или проблема
Я использую 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?????????
, что указывает на невозможность получения информации о файле.
Возможные причины
-
Проблемы с правами доступа: Даже при установленных правах доступа на
777
, могут существовать дополнительные факторы, ограничивающие доступ. Например, если mergerfs не настроен правильно, это может привести к проблемам доступа для обычных пользователей. -
Опции монтирования: Стандартные параметры монтирования mergerfs могут не обеспечивать нужную конфигурацию для доступа всех пользователей. Например, если параметр
allow_other
не задан, пользователи, не являющиеся владельцами файлов, могут столкнуться с ограничениями. -
Версия mergerfs: Устаревшая версия mergerfs может содержать известные ошибки и ограничения. В вашем случае, версия
2.33.5
действительно могла не поддерживать необходимые функции для корректного доступа.
Решение проблемы
Как указали пользователи в обсуждении, одним из наиболее эффективных способов решения этой проблемы стало обновление до последней версии mergerfs. Здесь приведены шаги, которые могут помочь в разрешении проблемы:
-
Обновление mergerfs:
- Загрузите последнюю версию mergerfs (например,
2.40.2
или более позднюю) из официального репозитория. - Установите обновление:
sudo dpkg -i mergerfs_2.40.2.ubuntu-noble_amd64.deb
- Загрузите последнюю версию mergerfs (например,
-
Настройка параметров монтирования:
- При монтировании mergerfs используйте параметр
allow_other
, чтобы разрешить доступ другим пользователям:mergerfs -o allow_other,cache.files=partial,dropcacheonclose=true,category.create=mfs /D2TBa/2TBa:/D2TBb/2TBb:/D4TBa/4TBa:/D4TBb/4TBb /data
- При монтировании mergerfs используйте параметр
-
Проверка прав доступа:
- После выполнения этих шагов, выполните команду
ls -l /data
под пользователемberdux
, чтобы убедиться, что доступ восстановлен и директория отображается корректно.
- После выполнения этих шагов, выполните команду
Заключение
Следуя вышеописанным шагам, вы должны восстановить доступ к папке /data
для пользователя berdux
. Так как проблема связана с устаревшей версией и неправильными параметрами монтирования, важно держать систему и её компоненты в актуальном состоянии, чтобы избежать подобных ситуаций в будущем. Если возникнут дополнительные проблемы, рекомендуется обратиться к документации mergerfs и сообществу пользователей, которые могут предоставить актуальные советы и решения.
Таким образом, надеюсь, данная информация будет полезной для решения вашей проблемы с доступом к директории в среде Linux.