54

I used sshfs without sudo to create a directory like

sshfs user@172.19.76.226:/media/user/harddrive /temp/user/harddrive

but when I want to umount the /temp/user/harddrive directory with

umount /temp/user/harddrive

it prompts:

umount: /temp/user/harddrive: Permission denied

so how to umount this directory?

guntbert
  • 13,475
K.Wanter
  • 958

3 Answers3

82

sshfs uses FUSE (File system in USErspace) instead of the regular mount with elevated permissions.

That also means at least on old releases up to 16.04 you can not use umount (the counterpart of mount) to unmount the file system, although this should work as well on 18.04 and newer releases.

Generally you can unmount the file system using the corresponding command that is part of the used FUSE package. Up to Ubuntu 20.04, this is fuse version 2 which contains the fusermount command, whereas since around Ubuntu 22.04, it has been replaced by fuse3 containing fusermount3 instead.

Therefore, on a modern Ubuntu release (22.04 or newer), the preferred method is to use:

fusermount3 -u <MOUNTPOINT>

Or in your specific example:

fusermount3 -u /temp/user/harddrive

For more info, see e.g. man sshfs and man fusermount or man fusermount3 for your respective Ubuntu release.

Byte Commander
  • 110,243
7

This answer refers to Ubuntu 20.04, but in general you need two steps to properly unmount a sshfs volume: i) kill the sshfs process and ii) use sudo to unmount. Without using sudo, the system reports messages like "Device or resource busy" or "Transport endpoint is not connected", even if permissions are correct.

The instructions look like:

killall sshfs
sudo umount -l /temp/user/harddrive
5

Since I've bumped into this post and did not want to kill the process, just wanted to let you know that, as of Ubuntu 22.04, a simple umount works fine:

umount /mount/point/sshfs/folder

I did not get any warning or error message and the process was indeed terminated after checking with ps aux | grep ssh