
我一直在嘗試sshfs
存取 Synology 盒子上的目錄並透過終端安裝它。為此,我使用的是 SSHFS 版本適用於 macOS 的 FUSE專案.設定如下:
- Synology 盒子上
/volume1/justnfs
要安裝的目錄由user1:users
使用者 ID 1026 和群組 ID 100 擁有,並且僅包含該使用者擁有的目錄/檔案。 user1
在我的筆記型電腦上,安裝目錄的使用者(也)具有使用者 ID 501 和群組 ID 20(群組名稱staff
)
現在,如果我這樣做
sshfs -o sshfs_debug syno:/justnfs ./storage
該目錄已掛載,但所有檔案的使用者 ID/群組 ID 並未重新映射(如預期)。為了解決這個問題,我創建了兩個具有所需映射的文件,即users.txt
withuser1:1026
和groups.txt
with 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
再次工作。
最後兩個指令的行為不同和/或無法列出目錄內容的原因可能是什麼?