Tmux e encryptfs causando diretórios “(inacessíveis)” ao reconectar

5

Estou executando um servidor Ubuntu 13.04 com um diretório pessoal criptografado (encryptfs). Eu mantenho uma sessão do tmux aberta que contém meu ambiente de desenvolvimento (vim, etc). Quando eu desconectar, vou desconectar a sessão do tmux e depois desconectar a conexão do ssh. Mais tarde, quando eu reconectar e reconectar a sessão do tmux, eu receberei erros como:

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

Isso geralmente significa que o vim (que ainda estava aberto enquanto desanexado) é salvo no ponto errado e não grava o arquivo no disco, apenas no diretório "inacessível", que parece temporário.

Se eu executar ' pwd ' do bash (sem fazer mais nada desde a reconexão), obtenho o diretório adequado / home / *** / *** . Se eu executar 'git status', recebo a mensagem acima (nenhum arquivo) e, se eu ': pwd ' de dentro do vim, recebo " (inacessível) / *** ".

A correção temporária para isso é executar o cd. 'antes de executar qualquer outro comando, o que permite que o git / vim / etc veja o diretório. Isto é bastante inconveniente, uma vez que muitas vezes tenho muitos painéis / ecrãs abertos no tmux e tenho que correr ' cd. ' em cada um deles sempre que me reconecto. E além disso, eu teria que ter certeza de que o vim ou qualquer outra coisa, está fechado antes de eu desconectar, ou eu provavelmente vou perder dados se não tomar cuidado.

Eu vi outro thread em algum lugar que atribuiu isso ao encryptfs desmontando $ HOME no logout, mas não houve respostas. Esta parece ser uma causa possível, mas não tenho ideia de por onde começar. Alguma ajuda?

    
por zhimsel 04.09.2013 / 22:09

1 resposta

6

Se for suficiente que o seu diretório home protegido ecryptfs não seja desmontado quando você sair, você pode remover o ~ / .ecryptfs / auto-umount e ele irá parar de desmontar quando você sair (o que eu faço, debian wheezy) . Eu encontrei este tópico no askubuntu sobre a mesma coisa, porém o roteiro apresentado não funciona. Aqui está uma versão modificada que faz.

#!/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 mencionado nesse tópico, você pode executá-lo como parte de seu script de logout.

Infelizmente, não há uma boa maneira de permitir que ele seja desmontado e que todos os seus aplicativos sejam automaticamente copiados no tmux attach. Se isso for necessário, você poderá considerar uma macro de chave do tmux para emitir um comando para cada janela e painel se mantiver seus aplicativos em locais regulares ou tiver uma maneira sã de detectar com precisão qual aplicativo está sendo executado nessa janela ou painel; Eu pessoalmente nunca percebi isso.

    
por 04.09.2013 / 23:13

Tags