
Tenho feito experiências sshfs
com a intenção de acessar um diretório em uma caixa Synology e montá-lo via Terminal. Para este fim, estou usando a versão do SSHFS fornecida peloFUSE para macOSprojeto. A configuração é a seguinte:
- o diretório na caixa Synology
/volume1/justnfs
que deve ser montado pertenceuser1:users
ao ID de usuário 1026 e ao ID de grupo 100 e contém diretórios/arquivos de propriedade apenas deste usuário. - no meu laptop, o usuário (também
user1
) que monta o diretório tem ID de usuário 501 e ID de grupo 20 (nome do grupostaff
)
Agora, se eu fizer
sshfs -o sshfs_debug syno:/justnfs ./storage
o diretório é montado, mas o ID do usuário/grupo de todos os arquivos não é remapeado (conforme esperado). Para resolver isso, criei dois arquivos com o mapeamento necessário, nomeadamente users.txt
with user1:1026
e groups.txt
with staff:100
. Então o comando
sshfs -o sshfs_debug -o idmap=file -o uidfile=users.txt -o gidfile=groups.txt syno:/justnfs ./storage
também monta o diretório remoto, no entanto, se eu mudar para storage
e do ls
, a saída estará completamente vazia e dmesg
mostrará
osxfuse: fuse_vnop_readdir failed (err=1)
Estranhamente, quando tento acessar cat
um arquivo com caminho conhecido (ou seja, acessá-lo diretamente), o comando é bem-sucedido e exibe o conteúdo do arquivo. É como se por algum motivo apenas a listagem de diretórios não fosse permitida.
Curiosamente, se eu fornecer o uid/gid explicitamente como
sshfs -o sshfs_debug -o uid=501 -o gid=20 syno:/justnfs ./storage
então ls
funciona novamente.
Qual poderia ser o motivo dos dois últimos comandos se comportarem de maneira diferente e/ou não ser possível listar o conteúdo do diretório?