#!/bin/bash if [[ -e /dev/mapper/cryptdir ]]; then echo "only one instance can run at a time" 1>&2 exit 1 fi sudo -v || exit 1 if [[ -z $1 ]]; then size='16M' else size=$1 fi cryptfile=$(mktemp) cryptdir=$(mktemp -d) pass=$(dd if=/dev/urandom bs=1 count=80 | base64) cleanup () { cd sudo umount $cryptdir sudo cryptsetup close cryptdir rm -f $cryptfile rmdir $cryptdir } trap cleanup EXIT dd if=/dev/urandom of=$cryptfile bs=$size count=1 echo $pass | sudo cryptsetup luksFormat $cryptfile - echo $pass | sudo cryptsetup open $cryptfile cryptdir --key-file - sudo mkfs.ext2 /dev/mapper/cryptdir sudo mount /dev/mapper/cryptdir $cryptdir sudo chown $USER $cryptdir cd $cryptdir $SHELL