
sshfs
私はSynologyボックスのディレクトリにアクセスし、ターミナル経由でマウントする目的で実験してきました。この目的のために、私はmacOS用FUSEプロジェクト。設定は次のとおりです。
/volume1/justnfs
マウントされるSynology ボックス上のディレクトリは、user1:users
ユーザー ID 1026 およびグループ ID 100 によって所有されており、このユーザーのみが所有するディレクトリ/ファイルが含まれています。user1
私のラップトップでは、ディレクトリをマウントしているユーザー(も)のユーザーIDは501、グループIDは20(グループ名staff
)です。
さて、もし私が
sshfs -o sshfs_debug syno:/justnfs ./storage
ディレクトリはマウントされますが、すべてのファイルのユーザーID/グループIDは(予想どおり)再マッピングされません。これに対処するために、必要なマッピングを持つ2つのファイル、つまり と を作成しました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
再び動作します。
最後の 2 つのコマンドの動作が異なり、ディレクトリの内容を一覧表示できない理由は何でしょうか?