Tmux und encryptfs verursachen „(nicht erreichbare)“ Verzeichnisse bei erneuter Verbindung

Tmux und encryptfs verursachen „(nicht erreichbare)“ Verzeichnisse bei erneuter Verbindung

Ich verwende einen Ubuntu 13.04-Server mit einem verschlüsselten Home-Verzeichnis (encryptfs). Ich halte eine tmux-Sitzung geöffnet, die meine Entwicklungsumgebung (vim usw.) enthält. Wenn ich die Verbindung trenne, trenne ich die tmux-Sitzung und dann die SSH-Verbindung. Wenn ich später die Verbindung wiederherstelle und die tmux-Sitzung erneut anschließe, erhalte ich Fehler wie:

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

Dies führt häufig dazu, dass vim (das während der Trennung noch geöffnet war) an der falschen Stelle speichert und die Datei nicht wirklich auf die Festplatte schreibt, sondern nur in das scheinbar temporäre „nicht erreichbare“ Verzeichnis.

Wenn ich renne 'Passwort' von Bash (nichts anderes tun, seit erneut anhängen) bekomme ich das richtige Verzeichnis/heim/***/***. Wenn ich 'git status' ausführe, erhalte ich die obige Meldung (keine solche Datei), und wenn ich ':Name' aus vim heraus erhalte ich "(nicht erreichbar)/***".

Die vorübergehende Lösung hierfür besteht darin, „CD .' bevor ich andere Befehle ausführe, damit git/vim/etc das Verzeichnis tatsächlich sehen können. Das ist ziemlich unpraktisch, da ich oft viele Panels/Bildschirme in tmux geöffnet habe und ich 'CD .' bei jedem von ihnen, wenn ich die Verbindung wieder herstelle. Und außerdem muss ich sicherstellen, dass vim oder etwas anderes geschlossen ist, bevor ich die Verbindung trenne, sonst verliere ich wahrscheinlich Daten, wenn ich nicht aufpasse.

Ich habe irgendwo einen anderen Thread gesehen, der dies auf die Demontage von encryptfs zurückführte$HOMEbeim Abmelden, aber es gab keine Antworten. Das scheint eine mögliche Ursache zu sein, aber ich habe keine Ahnung, wo ich anfangen soll. Irgendwelche Hilfe?

Antwort1

Wenn es ausreicht, dass Ihr durch ecryptfs geschütztes Home-Verzeichnis beim Abmelden nicht ausgehängt wird, können Sie ~/.ecryptfs/auto-umount entfernen, und es wird nicht mehr ausgehängt, wenn Sie sich abmelden (was ich auch mache, Debian Wheezy). Ich habe gefundendieser Thread auf Askubuntuungefähr das Gleiche, allerdings funktioniert das dargestellte Skript nicht. Hier ist eine modifizierte Version, die funktioniert.

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

Wie in diesem Thread erwähnt, können Sie es als Teil Ihres Abmeldeskripts ausführen lassen.

Leider gibt es keine gute Möglichkeit, es auszuhängen und alle Ihre Anwendungen automatisch per Tmux-Anhängen zu starten. Wenn das erforderlich ist, könnten Sie ein Tmux-Tastenmakro in Betracht ziehen, um jedem Fenster und jedem Panel einen Befehl zu erteilen, wenn Sie Ihre Anwendungen an regulären Orten aufbewahren oder eine vernünftige Möglichkeit haben, genau zu erkennen, welche App in diesem Fenster oder Panel ausgeführt wird; das habe ich persönlich nie herausgefunden.

verwandte Informationen