다시 연결 시 "(접근할 수 없음)" 디렉터리를 발생시키는 Tmux 및 encryptfs

다시 연결 시 "(접근할 수 없음)" 디렉터리를 발생시키는 Tmux 및 encryptfs

저는 암호화된 홈 디렉터리(encryptfs)가 있는 Ubuntu 13.04 서버를 실행하고 있습니다. 개발 환경(vim 등)을 보유하는 tmux 세션을 열어 둡니다. 연결을 끊으면 tmux 세션을 분리한 다음 SSH 연결을 끊습니다. 나중에 다시 연결하고 tmux 세션을 다시 연결하면 다음과 같은 오류가 발생합니다.

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

이는 종종 분리된 동안에도 열려 있던 vim이 잘못된 위치에 저장하고 실제로 파일을 디스크에 쓰지 않고 일시적인 것처럼 보이는 "접근할 수 없는" 디렉토리에만 기록한다는 것을 의미합니다.

내가 달리면 '비밀' bash에서(다시 연결한 후 다른 작업을 수행하지 않음) 적절한 디렉토리를 얻습니다./집/***/***. 'git status'를 실행하면 위의 메시지가 표시됩니다(해당 파일 없음).:비밀번호' vim 내에서 '를 얻습니다.(접근할 수 없음)/***".

이에 대한 임시 수정은 'CD .' 다른 명령을 실행하기 전에 git/vim/etc가 실제로 디렉토리를 볼 수 있도록 합니다. tmux에 많은 패널/화면이 열려 있는 경우가 많고 'CD .' 다시 연결할 때마다 각각에 대해. 게다가 연결을 끊기 전에 vim이나 다른 것이 닫혀 있는지 확인해야 합니다. 그렇지 않으면 조심하지 않으면 데이터가 손실될 가능성이 높습니다.

나는 이것을 encryptfs 분리로 인한 것이라고 어딘가에서 다른 스레드를 보았습니다.$HOME로그아웃했는데 답변이 없었습니다. 이것이 가능한 원인인 것 같지만 어디서부터 시작해야 할지 모르겠습니다. 도움이 필요하세요?

답변1

로그아웃할 때 ecryptfs로 보호되는 홈 디렉터리가 마운트 해제되지 않는 것으로 충분하다면 ~/.ecryptfs/auto-umount를 제거하면 로그아웃할 때 마운트 해제가 중지됩니다(제가 하는 일이 debian wheezy입니다). 나는 찾았다askubuntu의 이 스레드거의 똑같습니다. 그러나 제시된 스크립트는 작동하지 않습니다. 다음은 수정된 버전입니다.

#!/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

해당 스레드에서 언급한 대로 로그아웃 스크립트의 일부로 실행되도록 할 수 있습니다.

불행하게도 마운트 해제를 허용하고 모든 애플리케이션이 자동으로 tmux 연결에 CD가 되도록 하는 좋은 방법은 없습니다. 필요한 경우 애플리케이션을 일반 위치에 유지하거나 해당 창이나 패널에서 실행 중인 앱을 정확하게 감지할 수 있는 정상적인 방법이 있는 경우 각 창과 패널에 명령을 실행하는 tmux 키 매크로를 고려할 수 있습니다. 나는 개인적으로 그것을 결코 이해하지 못했습니다.

관련 정보