Назад | Перейти на главную страницу

Tmux и encryptfs вызывают каталоги «(недоступны)» при повторном подключении

Я запускаю сервер Ubuntu 13.04 с зашифрованным домашним каталогом (encryptfs). Я держу открытым сеанс tmux, в котором находится моя среда разработки (vim и т. Д.). Когда я отключаюсь, я отключаю сеанс tmux, а затем отключаю ssh-соединение. Позже, когда я снова подключусь и снова подключу сеанс tmux, я получу такие ошибки, как:

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

Это часто будет означать, что vim (который все еще был открыт, пока был отключен) сохраняет в неправильном месте и фактически не будет записывать файл на диск, а только в «недоступный» каталог, который кажется временным.

Если я убегу 'pwd'из bash (ничего больше не делая после повторного подключения) я получаю правильный каталог /домой/***/***. Если я запускаю git status, я получаю сообщение выше (такого файла нет), и если я: pwd'изнутри vim я получаю "(недоступно) / ***".

Временное исправление для этого - запустить 'CD .'перед запуском любых других команд, что позволяет git / vim / etc действительно видеть каталог. Это довольно неудобно, так как у меня часто открыто много панелей / экранов в tmux, и мне придется запускать 'CD .'на каждом из них каждый раз при повторном подключении. И вдобавок ко всему, я должен был убедиться, что vim или что-то еще закрыто, прежде чем я отключусь, иначе я, вероятно, потеряю данные, если не буду осторожен.

Я где-то видел другую ветку, которая приписывала это отключению encryptfs $ HOME при выходе из системы, но ответа не было. Это похоже на возможную причину, но я не знаю, с чего начать. Любая помощь?

Если достаточно, чтобы ваш домашний каталог, защищенный 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

Как упоминалось в этом потоке, вы можете выполнить его как часть сценария выхода из системы.

К сожалению, нет хорошего способа разрешить ему размонтировать и все ваши приложения автоматически cd при подключении tmux. Если это необходимо, вы можете рассмотреть возможность использования макроса tmux key для выдачи команды каждому окну и панели, если вы храните свои приложения в обычных местах или имеете разумный способ точно определить, какое приложение запущено в этом окне или панели; Я лично никогда этого не понимал.