У меня есть файловая система mergerfs / data, которая объединяет / data1 / data2 / data3 / data4, каждая из которых является файловой системой ext4.
Я экспортирую каталог / data / coihome (фактически каталог в / data3) через NFS в подсеть 192.168.0.0/24.
1) Я привязываю mount / data / coihome к / srv / exports / coihome (владение / srv / exports рекурсивно установлен в none: nogroup)
#REV: our mergerfs of all the /data partitions into /data
/data1:/data2:/data3:/data4 /data fuse.mergerfs defaults,allow_other,use_ino,fsname=mergerFS 0 0
#REV: bind /data/coihome to /srv/export/coihome so we can export safely
/data/coihome /srv/export/coihome none bind 0 0
2) В / etc / exports я экспортирую / srv / export / coihome (обратите внимание - он привязан к / data / coihome)
/srv/export 192.168.0.0/24(rw,fsid=0,sync,no_subtree_check)
/srv/export/coihome 192.168.0.0/24(rw,fsid=1,nohide,insecure,sync,no_subtree_check)
Я также добавил опцию crossmnt в первую строку без наблюдаемых изменений поведения.
Наконец, я монтирую экспортированный каталог NFS в / mnt / coihome
#REV: mount coihome (NFS)
coi3:/coihome /mnt/coihome nfs4 _netdev,auto 0 0
Теперь проблема: я могу без проблем изменять, создавать, удалять и т. Д. Файлы в / mnt / coihome. Однако команды git не работают с ошибками разрешений (недостаточными разрешениями) при изменении файлов в .git / objects и т. Д.
Я попытался изменить права собственности / разрешения, как предлагалось на нескольких форумах, например.
Даже команда chmod -R 777 не работает.
Запуск команд от имени суперпользователя (с помощью sudoe) делает работать (конечно, no_root_squash в этой ситуации).
Если я напрямую экспортирую систему, отличную от FUSE (например, / data3 / coihome с привязкой к / srv / exports / coihome), тогда все будет работать, как ожидалось, без проблем с разрешениями. Итак, слияние FUSE вызывает некоторые проблемы, которые я не могу понять.
Будем очень признательны за любые предложения или идеи.