encfs
Inhalt
Inhaltsverzeichnis
1. Vorwort
Mit encfs kann man einen Ordner verschlüsseln für heikle Daten. Aber durch eine allfällige lib Änderung wäre es möglich, dass vielleicht der Verschlüsselungsalogarithmus nicht mehr funktioniert. Oder einer Änderung von encfs selber.
Darum sollte man immer davon eine Kopie auf ein externes Medium machen oder besitzen.
Ist encfs gestartet, findet man den Ordner im Filemanager wie Nautilus oder ähnliche.
2. Benötigte Programme und Einstellungen
encfs und fuse sind die benötigten Programme, das Kernelmodul fuse sollte geladen sein. (lsmod | grep fuse)
Der Benützer muss in der Gruppe fuse sein. Das geht mit dem Befehl als root: adduser Benüzter fuse . Dannach muss der Benützer sich meistens grafisch ausloggen und wieder einloggen um die Gruppenzugehörigkeit zu aktivieren. Das kann man mit dem Komando id nachprüfen.
3. Parameter
Diese kann man im manual gut nachlesen. Es sei nur -i, --idle=MINUTES erwähnt. Damit wird ein auto unmount nach einer gewissen Zeit getätigt, was zur Sicherheit beiträgt.
Beim neu erstellen, muss in der deutschen Version statt j mit y englisch geantwortet werden. Es empfiehlt sich auch p für paranoia zu wählen, damit wird die Verschlüsselung gleich stark eingestellt.
4. Verwendungsbeispiel
Mounten oder Erstellen ist derselbe Befehl:
encfs $HOME/.testcontainer $HOME/testcontainer -i 5
Beim ersten Mal der Eingabe, kommen noch die Fragen, also die Erstellung des Ordner $HOME/.testcontainer wo die Daten liegen, der Mountpoint Ordner $HOME/testcontainer. Hier muss man auch in der deutschen Version unbedingt mit y antworten (nicht j!). Danach würde ich noch p für paranoia Verschlüsselung wählen.
Unmounten:
fusermount -u $HOME/testcontainer
Status:
mount | grep $HOME/testcontainer
Leerzeile = unmounted, eine Antwortzeile, es ist nocht gemounted.
5. Script für die Vereinfachung
Dieses Script beherscht nur einen Container Ordner, wer mehrere verschiedene Container will, müsste es verändern oder von Hand encfs benützen.
myencfs:
Zusätzlich wird noch xterm benötigt beim script hier, bitte nachinstallieren. Das Script erkennt selber ist in meinem Home ein container gemounted oder nicht, je nachdem wird es mounten oder unmounten oder es wird einen Container erstellen. Sollte selbsterklärend sein. Es lohnt sich dann einen Starter ins Startmenu dafür zu legen.
Das erste Zeichen darf kein Leerzeichen sein beim Abspeichern in die /usr/local/bin/myencfs Datei!
#!/bin/bash # This Programm ist a simple starter for the encfs Secure-Container Programm # You need to install encfs fuse and xterm # As root add user to fuse group: adduser User fuse # The User must grafical logout and login to activate the new group. Check by: id (Enter) command. # #Installation as root: # Put the Script to /usr/local/bin/myencfs # chown root.root /usr/local/bin/myencfs # chmod 755 /usr/local/bin/myencfs #Use: Now the user can run myencfs # #Ver: Sept2014 cmd=$1 if [ -d $HOME/.myencfs ]; then echo "=============================================================================================" echo -n "Folder exist ";echo -n $HOME;echo "/.myencfs" echo "In this Folder we keep some Config Info" echo echo "myencfs help" echo "=============================================================================================" else echo "=============================================================================================" echo -n "Create Folder ";echo -n $HOME;echo "/.myencfs" echo "In this Folder we keep some Config Info" echo echo "myencfs help" echo "=============================================================================================" mkdir $HOME/.myencfs touch $HOME/.myencfs/myencfsfolder echo 5 > $HOME/.myencfs/myencfsidle fi myencfsfolder=`cat $HOME/.myencfs/myencfsfolder` myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` if [ -z "$cmd" ]; then Var_myencfs=`mount | grep $HOME/$myencfsfolder` if [ "$Var_myencfs" == "" ]; then cmd=on else cmd=off fi fi #if [ -z `cat $HOME/.myencfs/myencfsfolder` ]; then if [ -z $myencfsfolder ]; then cmd=createcontainer fi case "$cmd" in off) fusermount -u $HOME/$myencfsfolder xmessage -center -timeout 1 " Unmount Encfs Container " ;; on) xterm -e ' echo "Try mounting the Encfs Conatainer..." echo "" myencfsfolder=`cat $HOME/.myencfs/myencfsfolder` myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` echo "Folder: $HOME/$myencfsfolder" echo "Auto Logout Idle-Time of Container is: $myencfs_idle_time min." echo "Change by command: myencfs time" echo echo "Remark: The Container is not a Backup!" echo "Copy yourself to another Media your" echo "important files!!" echo encfs $HOME/.$myencfsfolder $HOME/$myencfsfolder -i $myencfs_idle_time sleep 1 ' Var_myencfs=`mount | grep $HOME/$myencfsfolder` if [ "$Var_myencfs" == "" ]; then xmessage -center -timeout 3 " Mount Encfs Container Failled , mybe Password wrong " else xmessage -center -timeout 1 " Mount Encfs Container done " fi ;; createcontainer) fusermount -u $HOME/$myencfsfolder > /dev/null 2>&1 xmessage -center -timeout 1 " Unmount Encfs Container " xterm -e ' while [ -z "$Vara" ];do echo "Create Encfs Container" echo echo "Remark: The Container is not a Backup!" echo "Copy yourself to another Media your" echo "important files!!" echo echo "What is the Name for the Container (Folder)?" echo -n "Folder: ";read Vara done echo $Vara > $HOME/.myencfs/myencfsfolder myencfsfolder=`cat $HOME/.myencfs/myencfsfolder` myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` clear echo "Create Encfs Container" echo echo "Folder: $HOME/$myencfsfolder" echo "Auto Logout Idle-Time of Container is: $myencfs_idle_time min." echo "Change by command: myencfs time" echo echo "Tipps:" echo "1. Please use the y for yes, by german not the j." echo "2. Please use the p option for paranoia modus." echo "" encfs $HOME/.$myencfsfolder $HOME/$myencfsfolder -i $myencfs_idle_time sleep 1 ' Var_myencfs=`mount | grep $HOME/$myencfsfolder` if [ "$Var_myencfs" == "" ]; then xmessage -center -timeout 3 " Mount Encfs Container failed , mybe password wrong " else xmessage -center -timeout 1 " Mount Encfs Container done " fi ;; status) Var_myencfs=`mount | grep $HOME/$myencfsfolder` if [ "$Var_myencfs" == "" ]; then xmessage -center -timeout 1 " Encfs Container is OFF State " else xmessage -center -timeout 1 " Encfs Container is ON State " fi ;; time) fusermount -u $HOME/$myencfsfolder > /dev/null 2>&1 xmessage -center -timeout 1 " Unmount Encfs Container " xterm -e ' myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` echo "Auto Logoff Time Encfs Container" echo echo "Auto Logout Idle-Time of Container is: $myencfs_idle_time min." echo while [ -z "$Vara" ];do echo -n "New Time (default 5): ";read Vara done echo $Vara > $HOME/.myencfs/myencfsidle ' myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` #startup xterm -e ' echo "Try mounting the Encfs Conatainer..." echo "" myencfsfolder=`cat $HOME/.myencfs/myencfsfolder` myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` echo "Folder: $HOME/$myencfsfolder" echo "Auto Logout Idle-Time of Container is: $myencfs_idle_time min." echo "Change by command: myencfs time" echo echo "Remark: The Container is not a Backup!" echo "Copy yourself to another Media your" echo "important files!!" echo encfs $HOME/.$myencfsfolder $HOME/$myencfsfolder -i $myencfs_idle_time sleep 1 ' Var_myencfs=`mount | grep $HOME/$myencfsfolder` if [ "$Var_myencfs" == "" ]; then xmessage -center -timeout 3 " Mount Encfs Container failed , mybe password wrong " else xmessage -center -timeout 1 " Mount Encfs Container done " fi ;; wipeoutcontainer) fusermount -u $HOME/$myencfsfolder > /dev/null 2>&1 xmessage -center -timeout 1 " Unmount Encfs Container " xterm -e ' clear echo "Danger! You delete here your Container and Files!!" echo echo "You are shure you want do that?" echo #while [ -z "$Varb" ];do Vara=* while [ "$Vara" != "$Varb" ];do echo "Yes i want kill the Container and all Data?" echo -n "Shure: (yes/no) ";read -s Vara;echo echo -n "Really Shure: (yes/no) ";read -s Varb;echo clear done #done if [ -z "$Varb" ];then echo "Nothing deleted. We keep the Container and Files" echo echo -n "Press any key";read exit 0 fi if [ $Varb = "yes" ];then myencfsfolder=`cat $HOME/.myencfs/myencfsfolder` myencfs_idle_time=`cat $HOME/.myencfs/myencfsidle` rm -r $HOME/.myencfs rm -r $HOME/.$myencfsfolder rm -r $HOME/$myencfsfolder echo echo "All Container and Datas are deleted" echo echo -n "Press any key";read else echo "Nothing deleted. We keep the Container and Files" echo echo -n "Press any key";read fi ' ;; help) echo "myencfs help" echo "------------" echo "let it blank will automatic build Container and password and turn on/off flipflop" echo echo "or use this commands: on | off | createcontainer | status | time | wipeoutcontainer | help" ;; esac exit