我使用不带 sudo 的 sshfs 创建了一个目录,例如
sshfs [email protected]:/media/user/harddrive /temp/user/harddrive
但是当我想/temp/user/harddrive
使用
umount /temp/user/harddrive
它提示:
umount: /temp/user/harddrive: Permission denied
那么如何卸载该目录呢?
答案1
sshfs
使用 FUSE(USErspace 中的文件系统)而不是mount
具有提升权限的常规文件系统。
这也意味着至少16.04 之前的旧版本你可以不是使用umount
(的对应部分mount
)来卸载文件系统,尽管这也应该适用于18.04 及更高版本发布。
通常,您可以使用所用 FUSE 包中的相应命令来卸载文件系统。最高可达 Ubuntu 20.04,这是fuse
包含fusermount
命令的版本 2,而从 Ubuntu 22.04 开始,现已被fuse3
包含所取代fusermount3
。
因此,在现代 Ubuntu 版本(22.04 或更新版本)上,首选方法是使用:
fusermount3 -u <MOUNTPOINT>
或者在您的具体例子中:
fusermount3 -u /temp/user/harddrive
欲了解更多信息,请参见man sshfs
和man fusermount
或者man fusermount3
适用于您相应的 Ubuntu 版本。
答案2
此答案适用于 Ubuntu 20.04,但通常需要两个步骤才能正确卸载卷sshfs
:i) 终止进程sshfs
和 ii) 使用sudo
卸载。如果不使用sudo
,系统会报告“设备或资源繁忙”或“传输端点未连接”等消息,即使权限正确。
说明如下:
killall sshfs
sudo umount -l /temp/user/harddrive
答案3
因为我碰到了这篇文章并且不想进行kill
这个过程,只是想让你知道,从 Ubuntu 22.04 开始,一个简单的umount
工作正常:
umount /mount/point/sshfs/folder
我没有收到任何警告或错误消息,并且检查后该过程确实已终止ps aux | grep ssh