itscript called by mourner, for our administration - 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 6c43eef14904d2a912ce2444cc781ea8b2ed905c /git/coffin/commit/6c43eef14904d2a912ce2444cc781ea8b2ed905c.gph parazyd.org 70 1parent cb97a7f533a108720132427c9c185c211851520b /git/coffin/commit/cb97a7f533a108720132427c9c185c211851520b.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Wed, 27 Jan 2016 17:07:24 +0100 Err parazyd.org 70 i Err parazyd.org 70 iscript called by mourner, for our administration Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i A bin/sacrist | 90 +++++++++++++++++++++++++++++++ Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 90 insertions(+), 0 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/bin/sacrist b/bin/sacrist /git/coffin/file/bin/sacrist.gph parazyd.org 70 it@@ -0,0 +1,90 @@ Err parazyd.org 70 i+#!/bin/zsh Err parazyd.org 70 i+# Err parazyd.org 70 i+# sacrist - script called by mourner, for our graveyard administration Err parazyd.org 70 i+# Err parazyd.org 70 i+# ~ parazyd 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=`blkid $device | awk -F\" '{print $2}'` Err parazyd.org 70 i+ Err parazyd.org 70 i+tmptombs="/tmp/tombs" Err parazyd.org 70 i+lockfile="/tmp/coffinlock" Err parazyd.org 70 i+keymount="/media/tombkey" Err parazyd.org 70 i+coffindot=".coffin" Err parazyd.org 70 i+ Err parazyd.org 70 i+# debugs Err parazyd.org 70 i+echo "Arg1: $1" Err parazyd.org 70 i+echo "Arg2: $2" Err parazyd.org 70 i+echo "Device path is: $device" Err parazyd.org 70 i+echo "Device UUID is: $keyuuid" Err parazyd.org 70 i+echo "I am $happenz" Err parazyd.org 70 i+# end debugs Err parazyd.org 70 i+ Err parazyd.org 70 i+_mountkey() { Err parazyd.org 70 i+ mkdir -p $keymount Err parazyd.org 70 i+ mount $device $keymount Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+_getundertaker() { Err parazyd.org 70 i+ if [[ $1 == "user" ]]; then Err parazyd.org 70 i+ undertaker=`cat $keymount/$coffindot/undertaker | awk -F: '{print $1}'` Err parazyd.org 70 i+ chown -R $undertaker $keymount/$coffindot Err parazyd.org 70 i+ elif [[ $1 == "tombname" ]]; then Err parazyd.org 70 i+ tombname=`cat $keymount/$coffindot/undertaker | awk -F: '{print $2}'` Err parazyd.org 70 i+ elif [[ $1 == "graveyard" ]]; then Err parazyd.org 70 i+ graveyard=`cat $keymount/$coffindot/undertaker | awk -F: '{print $3}'` Err parazyd.org 70 i+ fi Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+_hashkey() { Err parazyd.org 70 i+ _getundertaker tombname Err parazyd.org 70 i+ cat $keymount/$coffindot/$tombname.key \ Err parazyd.org 70 i+ | sha512sum \ Err parazyd.org 70 i+ | awk -F" " '{print $1}' Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+_compare_key() { Err parazyd.org 70 i+ keyhash=`_hashkey` Err parazyd.org 70 i+ if [[ ( `cat $tmptombs | grep $keyhash` ) ]]; then Err parazyd.org 70 i+ happenz=close Err parazyd.org 70 i+ else Err parazyd.org 70 i+ happenz=open Err parazyd.org 70 i+ fi Err parazyd.org 70 i+} Err parazyd.org 70 i+_msg() { Err parazyd.org 70 i+ if [[ $1 == "err" ]]; then Err parazyd.org 70 i+ echo $fg_bold[red] "[E] $2" Err parazyd.org 70 i+ elif [[ $1 == "warn" ]]; then Err parazyd.org 70 i+ echo $fg_bold[cyan] "[W] $2" Err parazyd.org 70 i+ elif [[ $1 == "info" ]]; then Err parazyd.org 70 i+ echo $fg_bold[orange] "[i] $2" Err parazyd.org 70 i+ fi Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+if [[ $happenz == "CREATE" ]]; then Err parazyd.org 70 i+ _mountkey Err parazyd.org 70 i+ if [[ -f "$keymount/$coffindot/undertaker" ]]; then Err parazyd.org 70 i+ _getundertaker user; _msg info "Got undertaker: $undertaker" Err parazyd.org 70 i+ Err parazyd.org 70 i+ _compare_key Err parazyd.org 70 i+ if [[ $happenz == "close" ]]; then Err parazyd.org 70 i+ _msg info "Comparekey true" Err parazyd.org 70 i+ tombname=`cat $tmptombs | grep $keyhash | awk -F: '{print $3}'`; _msg info "Got tombname: $tombname" Err parazyd.org 70 i+ tomb slam $tombname Err parazyd.org 70 i+ cat $tmptombs | grep -v $keyhash > $tmptombs; _msg info "Put stuff in $tmptombs" Err parazyd.org 70 i+ umount $keymount; rmdir $keymount; _msg info "Unmounted usb" Err parazyd.org 70 i+ elif [[ $happenz == "open" ]]; then Err parazyd.org 70 i+ _msg info "Comparekey false" Err parazyd.org 70 i+ _getundertaker tombname; _getundertaker graveyard; _msg info "Got tombname and graveyard" Err parazyd.org 70 i+ Err parazyd.org 70 i+ echo "$undertaker:$graveyard:$tombname:$keyhash:$keyuuid" >> $tmptombs ; _msg info "Added it to $tmptombs" Err parazyd.org 70 i+ su $undertaker -c "tomb open $graveyard/$tombname -k $keymount/$coffindot/$tombname.key --unsafe --tomb-pwd lalala" Err parazyd.org 70 i+ Err parazyd.org 70 i+ umount $keymount; rmdir $keymount; _msg info "Unmounted usb" Err parazyd.org 70 i+ fi Err parazyd.org 70 i+ else Err parazyd.org 70 i+ _msg err "No valid .coffin dir!" Err parazyd.org 70 i+ umount $keymount; rmdir $keymount; Err parazyd.org 70 i+ fi Err parazyd.org 70 i+fi Err parazyd.org 70 .