He instalado osxfuse 3.7.1, sshfs 2.10, fuse libs 2.9.7 en High Sierra 10.13.3.
Las cosas parecen funcionar, excepto que si instalo un directorio distante a través de fstab, al desmontar el punto de montaje se deja en un estado de zombie, y la cosa solo que puedo hacer con ese camino es reutilizarlo para un montaje sshfs, como root. Aunque hay un truco extraño mediante el cual puedo recuperar el punto de montaje transfiriendo el zombiness a un archivo diferente (ver más abajo).
Mi /etc/fstab
es:
me@host:/home/me /Users/me/tmp/foo sshfs allow_other 0 0
Esto demuestra el problema (aquí estoy usando diskutil umount
pero umount
y la expulsión en la GUI del Finder da el mismo resultado):
Primero, con sshfs directamente (sin problemas):
$ cd /Users/me/tmp
$ mkdir foo
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
$ sshfs me@host:/home/me foo
$ ls foo/
# OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
# umount really worked.
Segundo, a través de /etc/fstab
(conduce a un archivo zombie):
$ sudo cp /etc/fstab /etc/fstab.backup
$ echo "me@host:/home/me $PWD/foo sshfs allow_other 0 0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/foo
$ ls foo/
# OK, contents of the distant directory.
$ diskutil umount foo
Unmount successful for foo
Sin embargo, en realidad ahora foo
es " zombie ":
$ ls -l
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:04 foo
# (Ownership/timestamp have changed.)
$ sudo chown me:staff foo
chown: foo: No such file or directory
$ sudo ls foo
ls: foo: No such file or directory
$ sudo rm foo
rm: bar: is a directory
$ sudo rmdir foo
rmdir: foo: Resource busy
$ ls /Volumes
Macintosh HD
$ sudo lsof foo
# Nothing.
En este punto, el punto de montaje foo
se ha convertido en un archivo zombie & Casi no puedo interactuar con eso. Incluso si reinicio el archivo todavía está en su estado problemático.
Lo único que puedo hacer es volver a montarlo como root:
$ mount $PWD/foo
mount_osxfuse: failed to mount /Users/me/tmp/foo@/dev/osxfuse0: Operation not permitted
$ sudo mount $PWD/foo
$ ls foo/
# OK, contents of the distant directory.
$ sudo diskutil umount foo
# (Back to the same zombie state.)
Y puedo transferir el zombiness a un directorio diferente:
$ mkdir bar
$ ls -l
drwxr-x--x 2 me staff 64B 13 Feb 21:16 bar
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:12 foo
$ echo "me@host:/home/me $PWD/bar sshfs allow_other 0 0" | sudo tee /etc/fstab >/dev/null
$ mount $PWD/bar
$ ls bar/
# OK, contents of the distant directory.
$ ls -l -d foo
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:12 foo
$ diskutil umount bar
$ ls -l
dr-xr-xr-x 2 root wheel 1B 13 Feb 21:19 bar
drwxr-x--x 2 me staff 64B 13 Feb 20:41 foo
# After umounting bar:
# foo’s ownerships is me:staff again, bar is zombie.
¿Alguna idea? ¿Estoy haciendo algo mal?