itfinished rewriting using zuper - coffin - secure lan file storage on a device Err parazyd.org 70 hgit clone git://parazyd.org/coffin.git URL:git://parazyd.org/coffin.git parazyd.org 70 1Log /git/coffin/log.gph parazyd.org 70 1Files /git/coffin/files.gph parazyd.org 70 1Refs /git/coffin/refs.gph parazyd.org 70 1Submodules /git/coffin/file/.gitmodules.gph parazyd.org 70 1README /git/coffin/file/README.md.gph parazyd.org 70 1LICENSE /git/coffin/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 839e5e2ff0103e68e1aaeeaaa7fc80126fea52f5 /git/coffin/commit/839e5e2ff0103e68e1aaeeaaa7fc80126fea52f5.gph parazyd.org 70 1parent 77fab0eb4f6f0258c3620ba481780cac5b6f00dd /git/coffin/commit/77fab0eb4f6f0258c3620ba481780cac5b6f00dd.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Wed, 23 Mar 2016 00:09:12 +0100 Err parazyd.org 70 i Err parazyd.org 70 ifinished rewriting using zuper Err parazyd.org 70 i Err parazyd.org 70 iCode has been mostly refactored, and now using the zuper library Err parazyd.org 70 iwhich will greatly enhance performance, and help along with development Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M src/mourner | 4 ++-- Err parazyd.org 70 i M src/sacrist | 81 +++++++++++++++++++------------ Err parazyd.org 70 i M src/zlibs/features | 22 +++++++++++++++------- Err parazyd.org 70 i M src/zlibs/hooks | 66 ++++++++++++++++--------------- Err parazyd.org 70 i M src/zlibs/keyfiles | 9 ++++++--- Err parazyd.org 70 i M src/zlibs/mounts | 28 ++++++++++++++++------------ Err parazyd.org 70 i M src/zlibs/ttab | 40 ++++++++++++++++---------------- Err parazyd.org 70 i Err parazyd.org 70 i7 files changed, 143 insertions(+), 107 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/src/mourner b/src/mourner /git/coffin/file/src/mourner.gph parazyd.org 70 it@@ -11,11 +11,11 @@ while read -r -u "${COPROC[0]}" event file; do Err parazyd.org 70 i if [[ $file =~ $pattern ]]; then Err parazyd.org 70 i case $event in Err parazyd.org 70 i CREATE) Err parazyd.org 70 i- echo "Created $file..."; sleep 1 Err parazyd.org 70 i+ echo "Created $file..." #; sleep 1 Err parazyd.org 70 i `pwd`/sacrist $file $event Err parazyd.org 70 i ;; Err parazyd.org 70 i DELETE) Err parazyd.org 70 i- echo "Removed $file..."; sleep 1 Err parazyd.org 70 i+ echo "Removed $file..." #; sleep 1 Err parazyd.org 70 i `pwd`/sacrist $file $event Err parazyd.org 70 i ;; Err parazyd.org 70 i esac Err parazyd.org 70 1diff --git a/src/sacrist b/src/sacrist /git/coffin/file/src/sacrist.gph parazyd.org 70 it@@ -4,60 +4,79 @@ Err parazyd.org 70 i # Err parazyd.org 70 i # ~ parazyd Err parazyd.org 70 i Err parazyd.org 70 i+coffin_version=0.2 Err parazyd.org 70 i+coffin_release_date="Mar/2016" Err parazyd.org 70 i+ Err parazyd.org 70 i+DEBUG=${DEBUG:-1} Err parazyd.org 70 i+QUIET=${QUIET:-0} Err parazyd.org 70 i+LOG=${LOG:-""} Err parazyd.org 70 i+ Err parazyd.org 70 i zkv=1 Err parazyd.org 70 i helpers=1 Err parazyd.org 70 i Err parazyd.org 70 i-R=$(pwd) Err parazyd.org 70 i+R=${COFFIN_PATH:-`pwd`} Err parazyd.org 70 i source $R/zlibs/zuper Err parazyd.org 70 i Err parazyd.org 70 i+# USB key Err parazyd.org 70 i vars+=(device keyuuid) Err parazyd.org 70 i+# Locals Err parazyd.org 70 i+vars+=(GRAVEYARD TOMBS TMPTOMBS TOMBPASSWD) Err parazyd.org 70 i+vars+=(KEYMOUNT COFFINDOT TTAB HOOKS) Err parazyd.org 70 i+vars+=(keypass undertaker tombid) Err parazyd.org 70 i+vars+=(happenz device keyuuid) Err parazyd.org 70 i Err parazyd.org 70 i+source $R/zlibs/zuper.init Err parazyd.org 70 i source $R/zlibs/features Err parazyd.org 70 i source $R/zlibs/hooks Err parazyd.org 70 i source $R/zlibs/keyfiles Err parazyd.org 70 i source $R/zlibs/mounts Err parazyd.org 70 i source $R/zlibs/ttab Err parazyd.org 70 i Err parazyd.org 70 i-source $R/zlibs/zuper.init Err parazyd.org 70 i+LOCK=$R/lock Err parazyd.org 70 i+[[ -f $LOCK ]] && { warn "Lock found. Wait until finished." && exit } Err parazyd.org 70 i+#touch $LOCK Err parazyd.org 70 i Err parazyd.org 70 i-device=$1 Err parazyd.org 70 i-happenz=$2 Err parazyd.org 70 i-keyuuid=$(lsblk -no uuid $device) Err parazyd.org 70 i- Err parazyd.org 70 i-typeset -H keypass Err parazyd.org 70 i-typeset -H keyuuid Err parazyd.org 70 i-typeset -H undertaker Err parazyd.org 70 i-typeset -H graveyard Err parazyd.org 70 i-typeset -H tombs Err parazyd.org 70 i-typeset -H tombpasswd Err parazyd.org 70 i- Err parazyd.org 70 i-# Vars Err parazyd.org 70 i-graveyard="/home/graveyard" # Our graveyard, with all the tombs Err parazyd.org 70 i-tombs="$graveyard/tombs" # Info about opened tombs, holds keyuuid, keyhash and tombid Err parazyd.org 70 i-tmptombs="$graveyard/tmptombs" # Temp tempfile, for updating $tombs Err parazyd.org 70 i-keymount="/media/tombkey" # Directory where keys get mounted Err parazyd.org 70 i-coffindot="$keymount/.coffin" # .coffin directory on the usb key Err parazyd.org 70 i-ttab="$coffindot/ttab" # Our ttab Err parazyd.org 70 i-hooks="$coffindot/hook" Err parazyd.org 70 i-tomb="/usr/local/bin/tomb" Err parazyd.org 70 i-tombpasswd="$graveyard/passwd" Err parazyd.org 70 i+device=$1 && xxx "Device: $device" Err parazyd.org 70 i+happenz=$2 && xxx "Happenz: $happenz" Err parazyd.org 70 i+keyuuid=$(lsblk -no uuid $device) && xxx "Key UUID: $keyuuid" Err parazyd.org 70 i Err parazyd.org 70 i-[[ $happenz == "CREATE" ]] && { Err parazyd.org 70 i- mount-key Err parazyd.org 70 i+GRAVEYARD="${GRAVEYARD:-/home/graveyard}" # Our graveyard, with all the tombs Err parazyd.org 70 i+TOMBS="${TOMBS:-$GRAVEYARD/tombs}" # Info about opened tombs, holds keyuuid, keyhash and tombid Err parazyd.org 70 i+TMPTOMBS="${TMPTOMBS:-$GRAVEYARD/tmptombs}" # Temp tempfile, for updating $tombs Err parazyd.org 70 i+KEYMOUNT="${KEYMOUNT:-/media/tombkey}" # Directory where keys get mounted Err parazyd.org 70 i+COFFINDOT="${COFFINDOT:-$KEYMOUNT/.coffin}" # .coffin directory on the usb key Err parazyd.org 70 i+TTAB="${TTAB:-$COFFINDOT/ttab}" # Our ttab Err parazyd.org 70 i+HOOKS="${HOOKS:-$COFFINDOT/hook}" Err parazyd.org 70 i+TOMB="${TOMB:-/usr/local/bin/tomb}" Err parazyd.org 70 i+TOMBPASSWD="${TOMBPASSWD:-$GRAVEYARD/passwd}" Err parazyd.org 70 i Err parazyd.org 70 i- if [[ -d "$coffindot" ]]; then Err parazyd.org 70 i- notice "Found .coffin" Err parazyd.org 70 i+# Main Err parazyd.org 70 i+req=(happenz device) Err parazyd.org 70 i+ckreq || { Err parazyd.org 70 i+ _msg failure "Not called through mourner. Exiting..." Err parazyd.org 70 i+ # clean Err parazyd.org 70 i+ exit Err parazyd.org 70 i+} Err parazyd.org 70 i Err parazyd.org 70 i- [[ -f "$hooks" ]] && check-hooks Err parazyd.org 70 i- [[ -f "$ttab" ]] && ttab-magic Err parazyd.org 70 i+[[ $happenz == "CREATE" ]] && { Err parazyd.org 70 i+ mount-key $device Err parazyd.org 70 i+ [[ $? = 0 ]] || { die "Key not mounted successfully." && exit } Err parazyd.org 70 i Err parazyd.org 70 i+ if [[ -d "$COFFINDOT" ]]; then Err parazyd.org 70 i+ notice "Found .coffin" Err parazyd.org 70 i+ [[ -f "$HOOKS" ]] && xxx "Found hooks" && \ Err parazyd.org 70 i+ check-hooks Err parazyd.org 70 i+ [[ -f "$TTAB" ]] && xxx "Found ttab" && \ Err parazyd.org 70 i+ ttab-magic Err parazyd.org 70 i else Err parazyd.org 70 i _msg warning "No .coffin directory" Err parazyd.org 70 i fi Err parazyd.org 70 i Err parazyd.org 70 i- umount-key Err parazyd.org 70 i+ umount-key $device Err parazyd.org 70 i+ # cleanup & exit Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i [[ $happenz == "DELETE" ]] && { Err parazyd.org 70 i- # Some kind of endgame Err parazyd.org 70 i+ # TODO: Some kind of endgame Err parazyd.org 70 i } Err parazyd.org 70 i+ Err parazyd.org 70 1diff --git a/src/zlibs/features b/src/zlibs/features /git/coffin/file/src/zlibs/features.gph parazyd.org 70 it@@ -5,41 +5,49 @@ check-webdav-hook() { Err parazyd.org 70 i Err parazyd.org 70 i davconf="/etc/apache2/sites-available/coffindav.conf" Err parazyd.org 70 i Err parazyd.org 70 i- if [[ $entry =~ webdav && -f $coffindot/webdav.conf ]]; then Err parazyd.org 70 i+ if [[ $entry =~ webdav && -f $COFFINDOT/webdav.conf ]]; then Err parazyd.org 70 i notice "Found WebDAV data. Setting up..." Err parazyd.org 70 i Err parazyd.org 70 i- [[ -f $coffindot/davinfo ]] && { Err parazyd.org 70 i- cat $coffindot/davinfo >> /etc/apache2/davpasswd Err parazyd.org 70 i+ [[ -f $COFFINDOT/davinfo ]] && { Err parazyd.org 70 i+ cat $COFFINDOT/davinfo >> /etc/apache2/davpasswd Err parazyd.org 70 i [[ $? = 0 ]] && { Err parazyd.org 70 i- rm $coffindot/davinfo Err parazyd.org 70 i+ rm $COFFINDOT/davinfo Err parazyd.org 70 i gpasswd -a www-data $undertaker Err parazyd.org 70 i notice "Added new WebDAV user" Err parazyd.org 70 i } Err parazyd.org 70 i } Err parazyd.org 70 i sed -i -e :a -e '$d;N;2,3ba' -e 'P;D' $davconf Err parazyd.org 70 i- cat $coffindot/webdav.conf >> $davconf Err parazyd.org 70 i+ cat $COFFINDOT/webdav.conf >> $davconf Err parazyd.org 70 i notice "Wrote to $davconf" Err parazyd.org 70 i /etc/init.d/apache2 restart Err parazyd.org 70 i+ rm $COFFINDOT/webdav.conf Err parazyd.org 70 i notice "Done setting up WebDAV" Err parazyd.org 70 i else Err parazyd.org 70 i notice "No WebDAV data found" Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i+delete-webdav-hook() { } Err parazyd.org 70 i+ Err parazyd.org 70 i+ Err parazyd.org 70 i check-sshfs-hook() { Err parazyd.org 70 i fn check-sshfs-hook Err parazyd.org 70 i Err parazyd.org 70 i- if [[ $entry =~ sshfs && -f $coffindot/sshpubkey ]]; then Err parazyd.org 70 i+ if [[ $entry =~ sshfs && -f $COFFINDOT/sshpubkey ]]; then Err parazyd.org 70 i notice "Found SSH data. Setting up..." Err parazyd.org 70 i Err parazyd.org 70 i mkdir -p /home/$undertaker/.ssh Err parazyd.org 70 i- cat $coffindot/sshpubkey >> /home/$undertaker/.ssh/authorized_keys Err parazyd.org 70 i+ cat $COFFINDOT/sshpubkey >> /home/$undertaker/.ssh/authorized_keys Err parazyd.org 70 i chown -R $undertaker:$undertaker /home/$undertaker/.ssh Err parazyd.org 70 i chmod 700 /home/$undertaker/.ssh && chmod 600 /home/$undertaker/.ssh/authorized_keys Err parazyd.org 70 i Err parazyd.org 70 i [[ $? = 0 ]] && notice "Wrote to authorized_keys" \ Err parazyd.org 70 i && notice "Done setting up SSH" Err parazyd.org 70 i+ Err parazyd.org 70 i+ # TODO: remove SSH key from usb Err parazyd.org 70 i else Err parazyd.org 70 i notice "No SSH data found" Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 i+ Err parazyd.org 70 i+delete-sshfs-hook() { } Err parazyd.org 70 1diff --git a/src/zlibs/hooks b/src/zlibs/hooks /git/coffin/file/src/zlibs/hooks.gph parazyd.org 70 it@@ -4,9 +4,10 @@ check-hooks() { Err parazyd.org 70 i # TODO: fragmented keys, delete, backup, moar Err parazyd.org 70 i fn check-hooks Err parazyd.org 70 i Err parazyd.org 70 i- for entry in $(cat $hooks); do Err parazyd.org 70 i- let hook=$hook+1 Err parazyd.org 70 i- notice "Found hook $hook..." Err parazyd.org 70 i+ line=0 Err parazyd.org 70 i+ for entry in $(cat $HOOKS); do Err parazyd.org 70 i+ let hook=$line+1 Err parazyd.org 70 i+ notice "Found hook $line..." Err parazyd.org 70 i Err parazyd.org 70 i # Check what's hook supposed to do Err parazyd.org 70 i if [[ ${entry[(ws@:@)1]} == "create" ]]; then Err parazyd.org 70 it@@ -17,10 +18,12 @@ check-hooks() { Err parazyd.org 70 i backup-tomb Err parazyd.org 70 i else Err parazyd.org 70 i _msg failure "No valid hook syntax on hook $hook" Err parazyd.org 70 i- print $entry >> $hooks.fail Err parazyd.org 70 i- notice "Wrote failed hook to $hooks.fail" Err parazyd.org 70 i+ print $entry >> $HOOKS.fail Err parazyd.org 70 i+ notice "Wrote failed hook to $HOOKS.fail" Err parazyd.org 70 i fi Err parazyd.org 70 i done Err parazyd.org 70 i+ Err parazyd.org 70 i+ rm $HOOKS Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i create-new-tomb() { Err parazyd.org 70 it@@ -31,50 +34,49 @@ create-new-tomb() { Err parazyd.org 70 i Err parazyd.org 70 i notice "Creating new tomb" Err parazyd.org 70 i Err parazyd.org 70 i- undertaker=${entry[(ws@:@)2]} Err parazyd.org 70 i- tombid=${entry[(ws@:@)3]} Err parazyd.org 70 i- tombsize=${entry[(ws@:@)4]} Err parazyd.org 70 i- keypass=$(pwgen 30 -1 1) Err parazyd.org 70 i+ undertaker=${entry[(ws@:@)2]} && xxx "Undertaker: $undertaker" Err parazyd.org 70 i+ tombid=${entry[(ws@:@)3]} && xxx "Tombid: $tombid" Err parazyd.org 70 i+ tombsize=${entry[(ws@:@)4]} && xxx "Tomb size: $tombsize" Err parazyd.org 70 i+ keypass=$(pwgen 30 -1 1) && xxx "Key password: $keypass" Err parazyd.org 70 i Err parazyd.org 70 i- if ! [[ ( $(id $undertaker) ) ]]; then Err parazyd.org 70 i- _msg warning "No user called $undertaker found. Creating..." Err parazyd.org 70 i+ $(id $undertaker &>/dev/null) Err parazyd.org 70 i+ [[ $? = 0 ]] || { Err parazyd.org 70 i+ warn "User $undertaker not found. Creating..." Err parazyd.org 70 i useradd -G coffin -m -s /bin/nologin $undertaker Err parazyd.org 70 i notice "Created user $undertaker" Err parazyd.org 70 i- else Err parazyd.org 70 i- notice "Found user $undertaker" Err parazyd.org 70 i- fi Err parazyd.org 70 i- Err parazyd.org 70 i- # Check for features Err parazyd.org 70 i- check-webdav-hook Err parazyd.org 70 i- check-sshfs-hook Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i notice "Digging your tomb..." Err parazyd.org 70 i Err parazyd.org 70 i- sudo -u $undertaker $tomb dig -s $tombsize $graveyard/$tombid.tomb || \ Err parazyd.org 70 i- (_msg failure "Digging went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i+ sudo -u $undertaker $TOMB dig -s $tombsize $GRAVEYARD/$tombid.tomb || \ Err parazyd.org 70 i+ (die "Digging went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i clean-failed-hook) Err parazyd.org 70 i Err parazyd.org 70 i- sudo -u $undertaker $tomb forge $graveyard/$tombid.key \ Err parazyd.org 70 i+ sudo -u $undertaker $TOMB forge $GRAVEYARD/$tombid.key \ Err parazyd.org 70 i --unsafe \ Err parazyd.org 70 i --tomb-pwd "$keypass" || \ Err parazyd.org 70 i- (_msg failure "Forging key went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i+ (die "Forging key went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i clean-failed-hook) Err parazyd.org 70 i Err parazyd.org 70 i- sudo -u $undertaker $tomb lock $graveyard/$tombid.tomb \ Err parazyd.org 70 i- -k $graveyard/$tombid.key \ Err parazyd.org 70 i+ sudo -u $undertaker $TOMB lock $GRAVEYARD/$tombid.tomb \ Err parazyd.org 70 i+ -k $GRAVEYARD/$tombid.key \ Err parazyd.org 70 i --unsafe \ Err parazyd.org 70 i --tomb-pwd "$keypass" || \ Err parazyd.org 70 i- (_msg failure "Locking tomb went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i+ (die "Locking tomb went downhill. Cleaning and exiting" && \ Err parazyd.org 70 i clean-failed-hook) Err parazyd.org 70 i Err parazyd.org 70 i- notice "Moving your keyfile to your USB key..." Err parazyd.org 70 i- mv $graveyard/$tombid.key $coffindot/ && \ Err parazyd.org 70 i- chown $undertaker:$undertaker $coffindot/$tombid.key && \ Err parazyd.org 70 i- notice "Moved and chowned keyfile" Err parazyd.org 70 i+ xxx "Moving your keyfile to your USB key..." Err parazyd.org 70 i+ mv $GRAVEYARD/$tombid.key $COFFINDOT/ && \ Err parazyd.org 70 i+ chown $undertaker:$undertaker $COFFINDOT/$tombid.key && \ Err parazyd.org 70 i+ xxx "Moved and chowned keyfile" Err parazyd.org 70 i Err parazyd.org 70 i- print "${undertaker}:${tombid}:true" >> $ttab Err parazyd.org 70 i+ print "${undertaker}:${tombid}:false" >> $TTAB Err parazyd.org 70 i Err parazyd.org 70 i- keyhash=$(hash-key) Err parazyd.org 70 i- print "${keyhash}:${keypass}" >> $tombpasswd Err parazyd.org 70 i+ hash-key Err parazyd.org 70 i+ print "${keyhash}:${keypass}" >> $TOMBPASSWD Err parazyd.org 70 i notice "Wrote to ttab and tombpasswd" Err parazyd.org 70 i+ Err parazyd.org 70 i+ # Check for features Err parazyd.org 70 i+ check-webdav-hook Err parazyd.org 70 i+ check-sshfs-hook Err parazyd.org 70 i } Err parazyd.org 70 1diff --git a/src/zlibs/keyfiles b/src/zlibs/keyfiles /git/coffin/file/src/zlibs/keyfiles.gph parazyd.org 70 it@@ -2,16 +2,19 @@ Err parazyd.org 70 i Err parazyd.org 70 i hash-key() { Err parazyd.org 70 i fn hash-key Err parazyd.org 70 i+ vars+=(keyhash) Err parazyd.org 70 i+ keyhash="" Err parazyd.org 70 i Err parazyd.org 70 i- ${$(sha256sum $coffindot/$tombid.key)[(ws: :)1]} Err parazyd.org 70 i+ keyhash=${$(sha256sum $COFFINDOT/$tombid.key)[(ws: :)1]} Err parazyd.org 70 i+ xxx "sha256 of keyfile: $keyhash" Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i compare-key() { Err parazyd.org 70 i fn compare-key Err parazyd.org 70 i Err parazyd.org 70 i- keyhash=$(hash-key) Err parazyd.org 70 i+ hash-key Err parazyd.org 70 i Err parazyd.org 70 i- if [[ ( $(grep $keyhash $tombs | grep $keyuuid) ) ]]; then Err parazyd.org 70 i+ if [[ ( $(grep $keyhash $TOMBS | grep $keyuuid) ) ]]; then Err parazyd.org 70 i return 0 Err parazyd.org 70 i else Err parazyd.org 70 i return 1 Err parazyd.org 70 1diff --git a/src/zlibs/mounts b/src/zlibs/mounts /git/coffin/file/src/zlibs/mounts.gph parazyd.org 70 it@@ -1,31 +1,35 @@ Err parazyd.org 70 i #!/usr/bin/env zsh Err parazyd.org 70 i Err parazyd.org 70 i mount-key() { Err parazyd.org 70 i- fn mount-key Err parazyd.org 70 i+ fn mount-key $* Err parazyd.org 70 i+ req=(device) Err parazyd.org 70 i+ ckreq || return 1 Err parazyd.org 70 i Err parazyd.org 70 i- if [[ -d $keymount ]]; then Err parazyd.org 70 i- _msg failure "$keymount already exists." Err parazyd.org 70 i+ if [[ -d $KEYMOUNT ]]; then Err parazyd.org 70 i+ _msg failure "$KEYMOUNT already exists." Err parazyd.org 70 i return 1 Err parazyd.org 70 i else Err parazyd.org 70 i- notice "Creating $keymount" Err parazyd.org 70 i- mkdir -p $keymount Err parazyd.org 70 i+ notice "Creating $KEYMOUNT" Err parazyd.org 70 i+ mkdir -p $KEYMOUNT Err parazyd.org 70 i notice "Mounting..." Err parazyd.org 70 i- mount $device $keymount Err parazyd.org 70 i+ mount $device $KEYMOUNT Err parazyd.org 70 i return 0 Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i umount-key() { Err parazyd.org 70 i- fn umount-key Err parazyd.org 70 i+ fn umount-key $? Err parazyd.org 70 i+ req=(device) Err parazyd.org 70 i+ ckreq || return 1 Err parazyd.org 70 i Err parazyd.org 70 i- if [[ -d $keymount ]]; then Err parazyd.org 70 i- notice "Unmounting $keymount" Err parazyd.org 70 i- umount $keymount \ Err parazyd.org 70 i- && rmdir $keymount Err parazyd.org 70 i+ if [[ -d $KEYMOUNT ]]; then Err parazyd.org 70 i+ notice "Unmounting $device" Err parazyd.org 70 i+ umount $device \ Err parazyd.org 70 i+ && rmdir $KEYMOUNT Err parazyd.org 70 i notice "Success umounting" Err parazyd.org 70 i return 0 Err parazyd.org 70 i else Err parazyd.org 70 i- notice "No $keymount found" Err parazyd.org 70 i+ notice "No $KEYMOUNT found" Err parazyd.org 70 i return 0 Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 1diff --git a/src/zlibs/ttab b/src/zlibs/ttab /git/coffin/file/src/zlibs/ttab.gph parazyd.org 70 it@@ -6,48 +6,48 @@ ttab-magic() { Err parazyd.org 70 i notice "Doing ttab magic..." Err parazyd.org 70 i Err parazyd.org 70 i line=0 Err parazyd.org 70 i- Err parazyd.org 70 i- for entry in $(cat $ttab); do Err parazyd.org 70 i+ for entry in $(cat $TTAB); do Err parazyd.org 70 i let line=$line+1 Err parazyd.org 70 i notice "Found line $line..." Err parazyd.org 70 i Err parazyd.org 70 i [[ ${entry[(ws@:@)3]} == "true" ]] && { Err parazyd.org 70 i notice "Working on tomb from line $line" Err parazyd.org 70 i Err parazyd.org 70 i- undertaker=${entry[(ws@:@)1]} Err parazyd.org 70 i- notice "Username: $undertaker" Err parazyd.org 70 i- tombid=${entry[(ws@:@)2]} Err parazyd.org 70 i- notice "Tombname: $tombid" Err parazyd.org 70 i+ undertaker=${entry[(ws@:@)1]} && xxx "Undertaker: $undertaker" Err parazyd.org 70 i+ tombid=${entry[(ws@:@)2]} && xxx "Tombid: $tombid" Err parazyd.org 70 i Err parazyd.org 70 i compare-key Err parazyd.org 70 i- Err parazyd.org 70 i [[ $? = 0 ]] && { Err parazyd.org 70 i notice "compare-key -> true" Err parazyd.org 70 i- sudo -u $undertaker $tomb slam $tombid Err parazyd.org 70 i+ sudo -u $undertaker $TOMB slam $tombid Err parazyd.org 70 i Err parazyd.org 70 i- cp $tombs $tmptombs Err parazyd.org 70 i- grep -v $keyhash $tmptombs > $tombs && \ Err parazyd.org 70 i- chmod 600 $tombs && \ Err parazyd.org 70 i- notice "Updated $tombs"$tombs Err parazyd.org 70 i- rm $tmptombs Err parazyd.org 70 i+ cp $TOMBS $TMPTOMBS Err parazyd.org 70 i+ grep -v "${keyhash}:${keyuuid}" $TMPTOMBS > $TOMBS && \ Err parazyd.org 70 i+ chmod 600 $TOMBS && \ Err parazyd.org 70 i+ notice "Updated $TOMBS" Err parazyd.org 70 i+ rm $TMPTOMBS Err parazyd.org 70 i continue Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i notice "compare-key -> false" Err parazyd.org 70 i Err parazyd.org 70 i- keypass=${$(grep $keyhash $tombpasswd)[(ws@:@)2]} Err parazyd.org 70 i+ hash-key Err parazyd.org 70 i+ keypass=$(grep $keyhash $TOMBPASSWD) Err parazyd.org 70 i+ keypass=${keypass[(ws@:@)2]} Err parazyd.org 70 i+ xxx "Key password: $keypass" Err parazyd.org 70 i Err parazyd.org 70 i- sudo -u $undertaker $tomb open $graveyard/$tombid.tomb \ Err parazyd.org 70 i- -k $coffindot/$tombid.key \ Err parazyd.org 70 i+ sudo -u $undertaker $TOMB open $GRAVEYARD/$tombid.tomb \ Err parazyd.org 70 i+ -k $COFFINDOT/$tombid.key \ Err parazyd.org 70 i --unsafe \ Err parazyd.org 70 i --tomb-pwd "$keypass" Err parazyd.org 70 i Err parazyd.org 70 i- chmod g+rw /media/$tombid Err parazyd.org 70 i+ [[ $? = 0 ]] || { die "Tomb didn't open" && return 1 } Err parazyd.org 70 i Err parazyd.org 70 i [[ -d "/media/$tombid" ]] && { Err parazyd.org 70 i- print "${undertaker}:${keyhash}:${keyuuid}" >> $tombs && \ Err parazyd.org 70 i- chmod 600 $tombs && \ Err parazyd.org 70 i- notice "Added info to $tombs" Err parazyd.org 70 i+ chmod g+rw /media/$tombid Err parazyd.org 70 i+ print "${undertaker}:${keyhash}:${keyuuid}" >> $TOMBS && \ Err parazyd.org 70 i+ chmod 600 $TOMBS && \ Err parazyd.org 70 i+ notice "Added info to $TOMBS" Err parazyd.org 70 i } Err parazyd.org 70 i } Err parazyd.org 70 i done Err parazyd.org 70 .