ittomb deletion function - 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 f7a9f52b2508eff9381a644bb13e87f9ed7b6f9c /git/coffin/commit/f7a9f52b2508eff9381a644bb13e87f9ed7b6f9c.gph parazyd.org 70 1parent cc17987e9314c3d746a5ea585f46c766e3a2a8d6 /git/coffin/commit/cc17987e9314c3d746a5ea585f46c766e3a2a8d6.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Mon, 28 Mar 2016 15:33:39 +0200 Err parazyd.org 70 i Err parazyd.org 70 ittomb deletion function Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M .gitignore | 1 + Err parazyd.org 70 i M src/sacrist | 10 ++++++---- Err parazyd.org 70 i M src/zlibs/features | 27 ++++++++++++++++++++------- Err parazyd.org 70 i M src/zlibs/hooks | 46 +++++++++++++++++++++++++++++-- Err parazyd.org 70 i Err parazyd.org 70 i4 files changed, 70 insertions(+), 14 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/.gitignore b/.gitignore /git/coffin/file/.gitignore.gph parazyd.org 70 it@@ -1 +1,2 @@ Err parazyd.org 70 i NOTES.md Err parazyd.org 70 i+.*.swp Err parazyd.org 70 1diff --git a/src/sacrist b/src/sacrist /git/coffin/file/src/sacrist.gph parazyd.org 70 it@@ -7,7 +7,7 @@ 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+DEBUG=${DEBUG:-1} # NOTE: Change default value to 0 later Err parazyd.org 70 i QUIET=${QUIET:-0} Err parazyd.org 70 i LOG=${LOG:-""} Err parazyd.org 70 i Err parazyd.org 70 it@@ -32,9 +32,9 @@ 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-LOCK=$R/lock # TODO: implement lock 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+touch $LOCK Err parazyd.org 70 i Err parazyd.org 70 i device=$1 && xxx "Device: $device" Err parazyd.org 70 i happenz=$2 && xxx "Happenz: $happenz" Err parazyd.org 70 it@@ -54,7 +54,7 @@ TOMBPASSWD="${TOMBPASSWD:-$GRAVEYARD/passwd}" Err parazyd.org 70 i req=(happenz device) Err parazyd.org 70 i #ckreq || { Err parazyd.org 70 i # die "Not called through mourner. Exiting..." Err parazyd.org 70 i-# # clean 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 it@@ -76,10 +76,12 @@ act "Version: $coffin_version, $coffin_release_date" Err parazyd.org 70 i fi Err parazyd.org 70 i Err parazyd.org 70 i umount-key $device Err parazyd.org 70 i+ rm $LOCK 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 # TODO: Some kind of endgame Err parazyd.org 70 i+ rm $LOCK 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@@ -1,7 +1,7 @@ Err parazyd.org 70 i #!/usr/bin/env zsh Err parazyd.org 70 i Err parazyd.org 70 i-check-webdav-hook() { Err parazyd.org 70 i- fn check-webdav-hook Err parazyd.org 70 i+create-webdav-hook() { Err parazyd.org 70 i+ fn create-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 it@@ -19,7 +19,7 @@ check-webdav-hook() { 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 act "Wrote to $davconf" Err parazyd.org 70 i- /etc/init.d/apache2 restart Err parazyd.org 70 i+ /etc/init.d/apache2 reload Err parazyd.org 70 i [[ $? = 0 ]] || warn "Apache is funky" Err parazyd.org 70 i rm $COFFINDOT/webdav.conf Err parazyd.org 70 i act "Done setting up WebDAV" Err parazyd.org 70 it@@ -29,11 +29,22 @@ check-webdav-hook() { 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+delete-webdav-hook() { Err parazyd.org 70 i+ fn delete-webdav-hook $* Err parazyd.org 70 i+ req=(tombid) Err parazyd.org 70 i+ tombid="$1" Err parazyd.org 70 i+ ckreq || return 1 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-check-sshfs-hook() { Err parazyd.org 70 i- fn check-sshfs-hook Err parazyd.org 70 i+ sed -i '/alias\ \/${tombid}/,+10 d' $davconf Err parazyd.org 70 i+ /etc/init.d/apache2 reload Err parazyd.org 70 i+ [[ $? = 0 ]] || warn "Apache is funky" Err parazyd.org 70 i+ act "Deleted WebDAV data" Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+create-sshfs-hook() { Err parazyd.org 70 i+ fn create-sshfs-hook Err parazyd.org 70 i Err parazyd.org 70 i if [[ $entry =~ sshfs && -f $COFFINDOT/sshpubkey ]]; then Err parazyd.org 70 i act "Found SSH data. Setting up..." Err parazyd.org 70 it@@ -46,7 +57,7 @@ check-sshfs-hook() { Err parazyd.org 70 i [[ $? = 0 ]] && act "Wrote to authorized_keys" \ Err parazyd.org 70 i && act "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+ # NOTE: maybe remove SSH key from usb, consider deletion Err parazyd.org 70 i else Err parazyd.org 70 i act "No SSH data found" Err parazyd.org 70 i fi Err parazyd.org 70 it@@ -64,4 +75,6 @@ delete-sshfs-hook() { Err parazyd.org 70 i Err parazyd.org 70 i grep -v $tombid $authkeys > $tempkeys Err parazyd.org 70 i mv $tempkeys $authkeys Err parazyd.org 70 i+ Err parazyd.org 70 i+ act "Deleted SSH data" Err parazyd.org 70 i } 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@@ -23,7 +23,6 @@ check-hooks() { Err parazyd.org 70 i return 1 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 it@@ -78,6 +77,47 @@ create-new-tomb() { Err parazyd.org 70 i act "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+ create-webdav-hook Err parazyd.org 70 i+ create-sshfs-hook Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+delete-tomb() { Err parazyd.org 70 i+ fn delete-tomb Err parazyd.org 70 i+ Err parazyd.org 70 i+ act "Deleting tomb" Err parazyd.org 70 i+ Err parazyd.org 70 i+ undertaker=${entry[(ws@:@)2]} && 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+ [[ $(id $undertaker &>/dev/null) ]] || { Err parazyd.org 70 i+ die "User $undertaker not found. Exiting..." Err parazyd.org 70 i+ return 1 Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ -f $GRAVEYARD/$tombid.tomb ]] || { Err parazyd.org 70 i+ die "Tomb $tombid.tomb not found. Exiting..." Err parazyd.org 70 i+ return 1 Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ -f $COFFINDOT/$tombid.key ]] || { Err parazyd.org 70 i+ die "Key of $tombid not found. Exiting..." Err parazyd.org 70 i+ return 1 Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ compare-key Err parazyd.org 70 i+ [[ $? = 0 ]] && { Err parazyd.org 70 i+ sudo -u $undertaker $TOMB slam $tombid Err parazyd.org 70 i+ Err parazyd.org 70 i+ grep -v ${undertaker}:${tombid} $TTAB > $TTAB.tmp Err parazyd.org 70 i+ [[ $? = 0 ]] && mv $TTAB.tmp $TTAB && \ Err parazyd.org 70 i+ act "Removed from ttab" Err parazyd.org 70 i+ Err parazyd.org 70 i+ grep -v ${keyhash} $TOMBPASSWD > $TOMBPASSWD.tmp Err parazyd.org 70 i+ [[ $? = 0 ]] && mv $TOMBPASSWD.tmp $TOMBPASSWD && \ Err parazyd.org 70 i+ act "Removed from tombpasswd" Err parazyd.org 70 i+ Err parazyd.org 70 i+ # Check for features Err parazyd.org 70 i+ delete-webdav-hook $tombid Err parazyd.org 70 i+ delete-sshfs-hook $undertaker $tombid Err parazyd.org 70 i+ } Err parazyd.org 70 i } Err parazyd.org 70 .