|
|
|
|
308
|
apt-get -y --force-yes install duplicity gnupg
|
308
|
apt-get -y --force-yes install duplicity gnupg
|
309
|
|
309
|
|
310
|
if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
|
310
|
if [ ! $MY_GPG_PUBLIC_KEY_ID ]; then
|
311
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
|
|
|
311
|
+ MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
|
312
|
+ fi
|
|
|
313
|
+
|
|
|
314
|
+ # make sure that the root user has access to your gpg public key
|
|
|
315
|
+ if [ $MY_GPG_PUBLIC_KEY_ID ]; then
|
|
|
316
|
+ if [ ! $MY_GPG_PUBLIC_KEY ]; then
|
|
|
317
|
+ MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
|
|
318
|
+ fi
|
|
|
319
|
+ # This is a compromise. backup needs access to things which the user
|
|
|
320
|
+ # doesn't have access to, but also needs to be able to encrypt as the user
|
|
|
321
|
+ # Perhaps there is some better way to do this.
|
|
|
322
|
+ su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
|
|
323
|
+ su -c "gpg --output ~/temp_private_key.txt --armor --export-secret-key $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
|
|
324
|
+ gpg --import $MY_GPG_PUBLIC_KEY
|
|
|
325
|
+ gpg --allow-secret-key-import --import /home/$MY_USERNAME/temp_private_key.txt
|
|
|
326
|
+ shred -zu /home/$MY_USERNAME/temp_private_key.txt
|
312
|
fi
|
327
|
fi
|
313
|
|
328
|
|
314
|
echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
|
329
|
echo '#!/bin/bash' > /usr/bin/$BACKUP_SCRIPT_NAME
|
|
|
|
|
397
|
echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
412
|
echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
398
|
|
413
|
|
399
|
echo 'echo "Cleaning up backup files"' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
414
|
echo 'echo "Cleaning up backup files"' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
400
|
- echo "duplicity --force cleanup file://$USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
|
|
|
415
|
+ echo -n 'duplicity --encrypt-key $GPG_KEY --force cleanup '
|
|
|
416
|
+ echo "file://$USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
|
417
|
+
|
401
|
echo 'echo "Removing old backups"' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
418
|
echo 'echo "Removing old backups"' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
402
|
- echo "duplicity --force remove-all-but-n-full 2 file://$USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
|
|
|
419
|
+ echo -n 'duplicity --encrypt-key $GPG_KEY --force remove-all-but-n-full 2 '
|
|
|
420
|
+ echo "file://$USB_MOUNT/backup" >> /usr/bin/$BACKUP_SCRIPT_NAME
|
403
|
|
421
|
|
404
|
echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
422
|
echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
405
|
echo '# Remove temporary files' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
423
|
echo '# Remove temporary files' >> /usr/bin/$BACKUP_SCRIPT_NAME
|
|
|
|
|
1611
|
# if gpg keys directory was previously imported from usb
|
1629
|
# if gpg keys directory was previously imported from usb
|
1612
|
if [[ $GPG_KEYS_IMPORTED == "yes" && -d /home/$MY_USERNAME/.gnupg ]]; then
|
1630
|
if [[ $GPG_KEYS_IMPORTED == "yes" && -d /home/$MY_USERNAME/.gnupg ]]; then
|
1613
|
sed -i "s|keyserver hkp://keys.gnupg.net|keyserver $GPG_KEYSERVER|g" /home/$MY_USERNAME/.gnupg/gpg.conf
|
1631
|
sed -i "s|keyserver hkp://keys.gnupg.net|keyserver $GPG_KEYSERVER|g" /home/$MY_USERNAME/.gnupg/gpg.conf
|
1614
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
|
|
|
1632
|
+ MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
1615
|
echo 'configure_gpg' >> $COMPLETION_FILE
|
1633
|
echo 'configure_gpg' >> $COMPLETION_FILE
|
1616
|
return
|
1634
|
return
|
1617
|
fi
|
1635
|
fi
|
|
|
|
|
1648
|
su -c "gpg --allow-secret-key-import --import $MY_GPG_PRIVATE_KEY" - $MY_USERNAME
|
1666
|
su -c "gpg --allow-secret-key-import --import $MY_GPG_PRIVATE_KEY" - $MY_USERNAME
|
1649
|
# for security ensure that the private key file doesn't linger around
|
1667
|
# for security ensure that the private key file doesn't linger around
|
1650
|
shred -zu $MY_GPG_PRIVATE_KEY
|
1668
|
shred -zu $MY_GPG_PRIVATE_KEY
|
1651
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
|
|
|
1669
|
+ MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
1652
|
else
|
1670
|
else
|
1653
|
# Generate a GPG key
|
1671
|
# Generate a GPG key
|
1654
|
echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
|
1672
|
echo 'Key-Type: 1' > /home/$MY_USERNAME/gpg-genkey.conf
|
|
|
|
|
1661
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
|
1679
|
chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/gpg-genkey.conf
|
1662
|
su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
|
1680
|
su -c "gpg --batch --gen-key /home/$MY_USERNAME/gpg-genkey.conf" - $MY_USERNAME
|
1663
|
shred -zu /home/$MY_USERNAME/gpg-genkey.conf
|
1681
|
shred -zu /home/$MY_USERNAME/gpg-genkey.conf
|
1664
|
- MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
|
|
|
|
1682
|
+ MY_GPG_PUBLIC_KEY_ID=$(su -c "gpg --list-keys $MY_USERNAME@$DOMAIN_NAME | grep 'pub '" - $MY_USERNAME | awk -F ' ' '{print $2}' | awk -F '/' '{print $2}')
|
1665
|
MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
1683
|
MY_GPG_PUBLIC_KEY=/tmp/public_key.gpg
|
1666
|
su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
1684
|
su -c "gpg --output $MY_GPG_PUBLIC_KEY --armor --export $MY_GPG_PUBLIC_KEY_ID" - $MY_USERNAME
|
1667
|
fi
|
1685
|
fi
|