#!/bin/bash # encfsmount - A simple frontend for encfs # (C) Ritesh Raj Sarraf July 2005 # Available only under the GPL PATH="/bin:/sbin:/usr/bin:/usr/sbin:/home/rrs/bin" export PATH XDIALOG_HIGH_DIALOG_COMPAT=1 export XDIALOG_HIGH_DIALOG_COMPAT #[ "`id -u`" != "0" ] && exec sudo "$0" "$@" ASKPASS=`which ssh-askpass`; CRYPT="/mnt/windoze/.linuxrc"; TARGET="/var/tmp/.linuxrc"; FUSERMOUNT=`which fusermount`; ENCFS=`which encfs`; ARGS="-u"; #set -vx DIALOG=`which dialog`; [ -n "$DISPLAY" ] && [ -x /usr/bin/Xdialog ] && DIALOG="Xdialog" mount() { # This is one good way to use dialog to accept passwords # But for some reason encfs isn't able to read the password # supplied by dialog # Hence, I'm using ssh-askpass to get the password #$ENCFS $CRYPT $TMP --extpass=`$DIALOG --title "Password" --password --inputbox "Enter Password" 18 45 2`; # This uses ssh-askpass $ENCFS $CRYPT $TARGET --extpass=$ASKPASS; } check_mount() { # Since encfs isn't returning good exit status # I'm using this hack to figure out if the mount # passed or failed. grep -i encfs /etc/mtab; retval=$?; case $retval in 0) $DIALOG --wrap --title "Information"\ --msgbox "Successfully Mounted!" 10 41;; 1) $DIALOG --wrap --title "Information"\ --msgbox "Mount Failed!" 10 41;; esac } prelim_mount_check() { grep -i encfs /etc/mtab; retval=$?; case $retval in 0) $DIALOG --wrap --title "Caution"\ --yesno "ALREADY MOUNTED!\nDo you want to umount ?" 0 0 case $? in 0) umount; esac;; 1) #$DIALOG --wrap --title "Information"\ #--yesno "Do you want to mount crypt ?"\ #case $? in # 0) mount; check_mount;; #esac;; esac } umount() { $FUSERMOUNT -u $TARGET; } ask_passwd() { $DIALOG --wrap --title "Password"\ --help "Contact Author Ritesh Raj Sarraf\nEmail: rrs@researchut.com"\ --inputbox "Please enter your password" 18 45 2 > /tmp/passwd.$$; retval=$?; $INPUT=`cat /tmp/passwd.$$`; #rm -f /tmp/passwd.$$; case $retval in 0) mount;; #echo "Password is '$input'";; 1) echo "Cancelled";; 255) echo "Box Closed";; esac } main() { $DIALOG --wrap --title "Question"\ --help "Contact Author Ritesh Raj Sarraf\nEmail: rrs@researchut.com"\ --yesno "Do you want to mount your encrypted filesystem ?" 0 0 case $? in 0) prelim_mount_check;; 255) $DIALOG --wrap --title "Aborted"\ --infobox "Cancelled" esac } main