Köszi mindenkinek az ötleteket.
Végül úgy döntöttem, hogy mégis írok egy scriptet a problémámra, mivel olyan megoldásra van szükségem, ami csak addig bontja ki a fájlomat a titkosított formátumból, amíg szerkesztem (pl. pár percre). Mivel be van kapcsolva a gépem folyamatosan, ezért egy fizikális hozzáférés esetén a blokk illetve userspace filerendszeres titkosítások nem nyújtanak megoldást (legalábbis ezt jobban preferálom).
Ez azért jobb nekem, mert olyan környezetben is biztosítani szeretném magamnak, hogy kényelmesen sokszor megnyithassam a titkosított dokumentumaimat, ahol nem akarok kernel szintű beállításokat végezni. Az encfs-t is fel kellene csatolni minden alkalommal, szóval fél megoldás nekem arra, ahogy szeretném.
Az alábbi módon működik (gpg_writeback.sh nevet adtam neki, de jó lenne valami normális név, amire 1 év múlva is könnyen asszociálok, ötlet?):
--------------------------
script.sh command file
pl:
script.sh gedit jelszavaim.gpg
script.sh vi mylist.gpg
Zenity használatával (és a GUI változó 1-re állításával) grafikusan kéri be a jelszót.
-----------------------------------------------------------
#!/bin/bash
# THIS SCRIPT OPENS A GPG PROTECTED FILE FOR EDITING
# AND THEN ENCRYPTS BACK ITS CONTENT
# WITH THE SAME PASSWORD KEPT IN MEMORY
#
# USAGE: script command filename
# Needed packages: gnupg, zenity
#
GUI=1
TEMP=`mktemp /dev/shm/tmp.XXXXXX`
rm -f $TEMP
HASH=`sha1sum $0`
COMMAND=$1
FILE=$2
# Ensure to remove file even after unexpected terminations
trap "{ rm -f $TEMP; }" 0 1 2 5 15
if [ "$GUI" == "0" ]
then
echo $HASH
echo -n "Give me the password to use:"
read -s PW
echo
else
PW=`zenity --entry --hide-text --title="Warning!" --text="Enter password:"`
#PW=`zenity --entry --hide-text --title="Warning!" --text="$HASH, Enter password:"`
fi
# Decrypt the file
echo $PW | gpg -q --decrypt --passphrase-fd 0 -o $TEMP $FILE &> /dev/null
if [ $? -ne 0 ]
then
rm -f $TEMP
echo "Error during decrypting!"
echo "Exiting."
echo
exit 1
else
# Open file
$COMMAND $TEMP 2> /dev/null
# Safety backup and delete (gpg cannot overwrite without confirmation)
mv $FILE $FILE.bak
# Encrypt back
echo $PW | gpg -qc --cipher-algo aes256 --passphrase-fd 0 \
-o $FILE $TEMP &> /dev/null
fi
rm -f $TEMP
exit
-----------------------------------
Szerk.: közben változtattam 1-2 dolgot amit kihagytam.
Elvileg most már végleges. Néhány hülyeséget kihagytam.