2

Я экспериментировал с sshfs с намерением получить доступ к каталогу в окне Synology и подключить его через терминал. Для этого я использую версию SSHFS, предоставленную проектом FUSE для macOS . Настройка следующая:

  • каталог в папке Synology /volume1/justnfs который должен быть подключен, принадлежит пользователю user1:users с идентификатором пользователя 1026 и идентификатором группы 100 и содержит каталоги / файлы, принадлежащие только этому пользователю.
  • на моем ноутбуке пользователь (также user1), монтирующий каталог, имеет идентификатор пользователя 501 и идентификатор группы 20 (имя группы staff)

Теперь, если я сделаю

sshfs -o sshfs_debug syno:/justnfs ./storage

каталог монтируется, тем не менее, идентификатор пользователя / идентификатор группы всех файлов не отображается (как ожидалось). Для решения этой проблемы я создал два файла с необходимым отображением, а именно users.txt с user1:1026 и groups.txt с staff:100 . Тогда команда

sshfs -o sshfs_debug -o idmap=file -o uidfile=users.txt -o gidfile=groups.txt syno:/justnfs ./storage

также монтирует удаленный каталог, однако, если я затем переключаюсь на storage и выполняю ls , вывод будет полностью пустым, и dmesg показывает

osxfuse: fuse_vnop_readdir failed (err=1)

Как ни странно, когда я пытаюсь cat файл с известным путем (т. Е. Обратиться к нему напрямую), команда завершается успешно и отображает содержимое файла. Это как если бы только список каталогов был по какой-то причине не разрешен.

Интересно, если я предоставлю UID / GID явно как

sshfs -o sshfs_debug -o uid=501 -o gid=20 syno:/justnfs ./storage

тогда ls снова работает.

В чем может быть причина того, что последние две команды ведут себя по-разному и / или что невозможно перечислить содержимое каталога?

0