I was trying to make it as easy as possible to access our YNAB file which lives in an encrypted TrueCrypt volume. The idea was to have OS X autofs automount the TrueCrypt volume so that when YNAB starts and attempts to load our document, TrueCrypt launches and asks for the password and then the volume mounts. I never got it working smoothly. I also tried sticking the password in the script, which is less than ideal, but that didn’t work either.
The following almost works, but not quite. If you can get it working, please let me know.
First, /etc/auto_master
:
marc@hyperion:~ 09:30:48 $ cat /etc/auto_master # # Automounter master map # +auto_master # Use directory service /net -hosts -nobrowse,hidefromfinder,nosuid /home auto_home -nobrowse,hidefromfinder /Network/Servers -fstab /- -static /auto auto_truecrypt
Then /etc/auto_truecrypt
(which is executable):
marc@hyperion:~ 09:30:53 $ cat /etc/auto_truecrypt #!/bin/sh TRUECRYPT_VOLUME="/Users/marc/Dropbox/TrueCryptVolume.truecrypt" key="$1" if [ "$1" == "Truecrypt" ]; then echo "-fstype=truecrypt :${TRUECRYPT_VOLUME}" fi
And /sbin/mount_truecrypt
:
marc@hyperion:~ 09:30:58 $ cat /sbin/mount_truecrypt #!/bin/sh echo "$0: Called with $@" >> /dev/ttys000 # echo open -W /Applications/TrueCrypt.app --args "$7" "$8" >> /dev/ttys000 # open -W /Applications/TrueCrypt.app --args "$7" "$8" echo /Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt --text --non-interactive --password=(password) "$7" "$8" >> /dev/ttys000 /Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt --text --non-interactive --password=(password) "$7" "$8"
As is, when I have the script calling /Applications/TrueCrypt.app/Contents/MacOS/TrueCrypt
with a password, I get:
$ cd /auto/Truecrypt (Mac locks up with spinning beach ball)
The script actually locks up my MacBook Pro with OS X 10.6.8. The script is probably called in a kernel context or with some big lock and trying to launch a complex userland process from there creates some kind of deadlock. Well, that’s my guess anyway. So be careful — don’t try this if you’re not ready to reboot.