Преглед на файлове

Transfering the MariaDB password in encrypted form

Bob Mottram преди 10 години
родител
ревизия
d585b5e3c0
променени са 1 файла, в които са добавени 39 реда и са изтрити 14 реда
  1. 39
    14
      install-freedombone.sh

+ 39
- 14
install-freedombone.sh Целия файл

@@ -616,13 +616,16 @@ function create_backup_script {
616 616
   echo "  mkdir /home/$MY_USERNAME/tempfiles" >> /usr/bin/$BACKUP_SCRIPT_NAME
617 617
   echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
618 618
   echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
619
+  echo "DATABASE_PASSWORD=$MARIADB_PASSWORD" >> /usr/bin/$BACKUP_SCRIPT_NAME
620
+  echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
619 621
   if grep -Fxq "install_gnu_social" $COMPLETION_FILE; then
620 622
       BACKUP_INCLUDES_DATABASES="yes"
621 623
       echo "if [ ! -d $USB_MOUNT/backup/gnusocial ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
622 624
       echo "  mkdir -p $USB_MOUNT/backup/gnusocial" >> /usr/bin/$BACKUP_SCRIPT_NAME
623 625
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
624 626
       echo 'echo "Obtaining GNU Social database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
625
-      echo "mysqldump --password=$MARIADB_PASSWORD gnusocial > $USB_MOUNT/backup/gnusocial.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
627
+      echo -n 'mysqldump --password=$DATABASE_PASSWORD gnusocial > ' >> /usr/bin/$BACKUP_SCRIPT_NAME
628
+      echo "$USB_MOUNT/backup/gnusocial.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
626 629
       echo "if [ ! -s $USB_MOUNT/backup/gnusocial.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
627 630
       echo '  echo "GNU social database could not be saved"' >> /usr/bin/$BACKUP_SCRIPT_NAME
628 631
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -641,7 +644,8 @@ function create_backup_script {
641 644
       echo "  mkdir -p $USB_MOUNT/backup/redmatrix" >> /usr/bin/$BACKUP_SCRIPT_NAME
642 645
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
643 646
       echo 'echo "Obtaining Red Matrix database backup"' >> /usr/bin/$BACKUP_SCRIPT_NAME
644
-      echo "mysqldump --password=$MARIADB_PASSWORD redmatrix > $USB_MOUNT/backup/redmatrix.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
647
+      echo -n 'mysqldump --password=$DATABASE_PASSWORD redmatrix > ' >> /usr/bin/$BACKUP_SCRIPT_NAME
648
+      echo "$USB_MOUNT/backup/redmatrix.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
645 649
       echo "if [ ! -s $USB_MOUNT/backup/redmatrix.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
646 650
       echo '  echo "Red Matrix database could not be saved"' >> /usr/bin/$BACKUP_SCRIPT_NAME
647 651
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -659,7 +663,8 @@ function create_backup_script {
659 663
       echo "if [ ! -d $USB_MOUNT/backup/owncloud ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
660 664
       echo "  mkdir -p $USB_MOUNT/backup/owncloud" >> /usr/bin/$BACKUP_SCRIPT_NAME
661 665
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
662
-      echo "mysqldump --password=$MARIADB_PASSWORD owncloud > $USB_MOUNT/backup/owncloud.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
666
+      echo -n 'mysqldump --password=$DATABASE_PASSWORD owncloud > ' >> /usr/bin/$BACKUP_SCRIPT_NAME
667
+      echo "$USB_MOUNT/backup/owncloud.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
663 668
       echo "if [ ! -s $USB_MOUNT/backup/owncloud.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
664 669
       echo '  echo "Owncloud database could not be saved"' >> /usr/bin/$BACKUP_SCRIPT_NAME
665 670
       echo "  if [ ! $MARIADB_PASSWORD ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
@@ -772,13 +777,25 @@ function create_backup_script {
772 777
 
773 778
   if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
774 779
       echo '# Mysql settings' >> /usr/bin/$BACKUP_SCRIPT_NAME
775
-      echo "mysqldump --password=$MARIADB_PASSWORD mysql user > $USB_MOUNT/backup/mysql.sql" >> /usr/bin/$BACKUP_SCRIPT_NAME
776
-      echo "if [ ! -s $USB_MOUNT/backup/mysql.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
780
+      echo "if [ ! -d $USB_MOUNT/backup/mariadb ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
781
+      echo "  mkdir -p $USB_MOUNT/backup/mariadb" >> /usr/bin/$BACKUP_SCRIPT_NAME
782
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
783
+      echo 'if [ ! -d /root/tempmariadb ]; then' >> /usr/bin/$BACKUP_SCRIPT_NAME
784
+      echo '    mkdir /root/tempmariadb' >> /usr/bin/$BACKUP_SCRIPT_NAME
785
+      echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
786
+      echo 'mysqldump --password=$DATABASE_PASSWORD mysql user > /root/tempmariadb/mysql.sql' >> /usr/bin/$BACKUP_SCRIPT_NAME
787
+      echo "if [ ! -s /root/tempmariadb/mysql.sql ]; then" >> /usr/bin/$BACKUP_SCRIPT_NAME
777 788
       echo '  echo "Unable to backup mysql settings"' >> /usr/bin/$BACKUP_SCRIPT_NAME
789
+      echo '  rm -rf /root/tempmariadb' >> /usr/bin/$BACKUP_SCRIPT_NAME
778 790
       echo "  umount $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
779 791
       echo "  rm -rf $USB_MOUNT" >> /usr/bin/$BACKUP_SCRIPT_NAME
780 792
       echo '  exit 653' >> /usr/bin/$BACKUP_SCRIPT_NAME
781 793
       echo 'fi' >> /usr/bin/$BACKUP_SCRIPT_NAME
794
+      echo 'echo "$DATABASE_PASSWORD" > /root/tempmariadb/db' >> /usr/bin/$BACKUP_SCRIPT_NAME
795
+      echo 'chmod 400 /root/tempmariadb/db' >> /usr/bin/$BACKUP_SCRIPT_NAME
796
+      echo "rsyncrypto -v -r /root/tempmariadb $USB_MOUNT/backup/mariadb $USB_MOUNT/backup/mariadb.keys $BACKUP_CERTIFICATE" >> /usr/bin/$BACKUP_SCRIPT_NAME
797
+      echo 'shred -zu /root/tempmariadb/*' >> /usr/bin/$BACKUP_SCRIPT_NAME
798
+      echo 'rm -rf /root/tempmariadb' >> /usr/bin/$BACKUP_SCRIPT_NAME
782 799
       echo '' >> /usr/bin/$BACKUP_SCRIPT_NAME
783 800
   fi
784 801
 
@@ -856,15 +873,23 @@ function create_restore_script {
856 873
   echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
857 874
 
858 875
   if [[ $BACKUP_INCLUDES_DATABASES == "yes" ]]; then
859
-      echo '  echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
860
-      echo '  if [ ! -d /root/tempmariadb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
861
-      echo '      mkdir /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
862
-      echo '  fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
863
-      echo "  rsyncrypto -v -d -r $USB_MOUNT/backup/mariadb /root/tempmariadb $USB_MOUNT/backup/mariadb.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
864
-      echo '  mysql -u root --password=$DATABASE_PASSWORD mysql -o < /root/tempmariadb/mysql.sql' >> /usr/bin/$RESTORE_SCRIPT_NAME
865
-      echo '  shred -zu /root/tempmariadb/mysql.sql' >> /usr/bin/$RESTORE_SCRIPT_NAME
866
-      echo '  rm -rf /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
867
-      echo '  mysql -u root --password=$DATABASE_PASSWORD "flush privileges;"' >> /usr/bin/$RESTORE_SCRIPT_NAME
876
+      echo 'echo "Restoring mysql settings"' >> /usr/bin/$RESTORE_SCRIPT_NAME
877
+      echo "if [ ! -d $USB_MOUNT/backup/mariadb ]; then" >> /usr/bin/$RESTORE_SCRIPT_NAME
878
+      echo '    if [ ! -d /root/tempmariadb ]; then' >> /usr/bin/$RESTORE_SCRIPT_NAME
879
+      echo '        mkdir /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
880
+      echo '    fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
881
+      echo "    rsyncrypto -v -d -r $USB_MOUNT/backup/mariadb /root/tempmariadb $USB_MOUNT/backup/mariadb.keys $BACKUP_CERTIFICATE" >> /usr/bin/$RESTORE_SCRIPT_NAME
882
+      echo '    echo "Get the MariaDB password from the backup"' >> /usr/bin/$RESTORE_SCRIPT_NAME
883
+      echo '    BACKUP_MARIADB_PASSWORD=$(</root/tempmariadb/db)' >> /usr/bin/$RESTORE_SCRIPT_NAME
884
+      echo '    echo "Restore the MariaDB user table"' >> /usr/bin/$RESTORE_SCRIPT_NAME
885
+      echo '    mysql -u root --password=$DATABASE_PASSWORD mysql -o < /root/tempmariadb/mysql.sql' >> /usr/bin/$RESTORE_SCRIPT_NAME
886
+      echo '    shred -zu /root/tempmariadb/*' >> /usr/bin/$RESTORE_SCRIPT_NAME
887
+      echo '    rm -rf /root/tempmariadb' >> /usr/bin/$RESTORE_SCRIPT_NAME
888
+      echo '    echo "Apply the new MariaDB user table"' >> /usr/bin/$RESTORE_SCRIPT_NAME
889
+      echo '    mysql -u root --password=$DATABASE_PASSWORD "flush privileges;"' >> /usr/bin/$RESTORE_SCRIPT_NAME
890
+      echo '    echo "Change the MariaDB password to the backup version"' >> /usr/bin/$RESTORE_SCRIPT_NAME
891
+      echo '    DATABASE_PASSWORD=$BACKUP_MARIADB_PASSWORD' >> /usr/bin/$RESTORE_SCRIPT_NAME
892
+      echo 'fi' >> /usr/bin/$RESTORE_SCRIPT_NAME
868 893
       echo '' >> /usr/bin/$RESTORE_SCRIPT_NAME
869 894
   fi
870 895