Я экспериментировал с 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
снова работает.
В чем может быть причина того, что последние две команды ведут себя по-разному и / или что невозможно перечислить содержимое каталога?