Tmux y encryptfs causan directorios "(inalcanzables)" al volver a conectarse

Tmux y encryptfs causan directorios "(inalcanzables)" al volver a conectarse

Estoy ejecutando un servidor Ubuntu 13.04 con un directorio de inicio cifrado (encryptfs). Mantengo abierta una sesión tmux que contiene mi entorno de desarrollo (vim, etc.). Cuando me desconecto, desconectaré la sesión tmux y luego desconectaré la conexión ssh. Más tarde, cuando me vuelva a conectar y vuelva a conectar la sesión tmux, obtendré errores como:

fatal: Could not change back to '(unreachable)/*****': No such file or directory

Esto a menudo significará que vim (que todavía estaba abierto mientras estaba desconectado) guarda en el lugar incorrecto y en realidad no escribe el archivo en el disco, solo en el directorio "inalcanzable", que parece temporal.

Si corro'persona con discapacidad' de bash (sin hacer nada más desde que lo volví a adjuntar) obtengo el directorio adecuado/hogar/***/***. Si ejecuto 'git status', aparece el mensaje anterior (no existe tal archivo), y si ':pwd'desde dentro de vim, obtengo "(inalcanzable)/***".

La solución temporal para esto es ejecutar 'cd .' antes de ejecutar cualquier otro comando, lo que permite a git/vim/etc ver el directorio. Esto es bastante inconveniente, ya que a menudo tengo muchos paneles/pantallas abiertas en tmux y tendría que ejecutar 'cd .' en cada uno de ellos cada vez que me vuelvo a conectar. Y además de eso, tendría que asegurarme de que vim o cualquier otra cosa esté cerrada antes de desconectarme, o probablemente perderé datos si no tengo cuidado.

Vi otro hilo en alguna parte que atribuía esto al desmontaje de encryptfs.$INICIOal cerrar sesión, pero no hubo respuestas. Esta parece una posible causa, pero no tengo idea de por dónde empezar. ¿Alguna ayuda?

Respuesta1

Si es suficiente que su directorio de inicio protegido por ecryptfs no se desmonte cuando cierre la sesión, puede eliminar ~/.ecryptfs/auto-umount y dejará de desmontarse cuando cierre la sesión (que es lo que hago yo, Debian Wheezy). encontréeste hilo en Askubuntucasi lo mismo, sin embargo el guión presentado no funciona. Aquí hay una versión modificada que sí lo hace.

#!/bin/bash

if tmux ls 2>&1 >/dev/null; then
  # tmux is still running, do not auto-unmount
  rm $HOME/.ecryptfs/auto-umount
else
  # no tmux server, auto-unmount is OK.
  touch $HOME/.ecryptfs/auto-umount
fi

Como se menciona en ese hilo, puede ejecutarlo como parte de su secuencia de comandos de cierre de sesión.

Desafortunadamente, no existe una buena manera de permitir que se desmonte y que todas sus aplicaciones se cd automáticamente en tmux adjunto. Si eso es necesario, podría considerar una macro de clave tmux para emitir un comando a cada ventana y panel si mantiene sus aplicaciones en ubicaciones habituales o tiene una forma sensata de detectar con precisión qué aplicación se está ejecutando en esa ventana o panel; Personalmente nunca me di cuenta de eso.

información relacionada