diff options
author | ramon <ramongomez@us.es> | 2016-10-31 13:09:54 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2016-10-31 13:09:54 +0000 |
commit | 749ae5fbfec33947c2bbf3d0508fce45cb2ccd1c (patch) | |
tree | da532d1f47e699935d2d03304e042dbf62a4a3c1 /installer | |
parent | b32e00fd2deb012eb5c859ad2b11259988f14cc6 (diff) |
#755: Usar fichero temporal con datos de conexión a MySQL para no incluir datos sensibles en la ejecución de comandos.
git-svn-id: https://opengnsys.es/svn/branches/version1.1@5059 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'installer')
-rwxr-xr-x | installer/opengnsys_export.sh | 21 | ||||
-rwxr-xr-x | installer/opengnsys_import.sh | 18 |
2 files changed, 33 insertions, 6 deletions
diff --git a/installer/opengnsys_export.sh b/installer/opengnsys_export.sh index 580c7b78..c8a75fba 100755 --- a/installer/opengnsys_export.sh +++ b/installer/opengnsys_export.sh @@ -82,15 +82,29 @@ cp $OPENGNSYS/client/etc/engine.cfg $TMPDIR echo "Guardamos las páginas de inicio." cp -r $OPENGNSYS/www/menus $TMPDIR -# MYSQL: Excluimos las tablas del servidor de administración (entornos) y repositorios +# Exportar la base de datos echo "Exportamos la información de la base de datos." source $OPENGNSYS/etc/ogAdmServer.cfg -mysqldump --opt -u $USUARIO -p$PASSWORD $CATALOG \ +# Crear fichero temporal de acceso a la BD +MYCNF=$(mktemp /tmp/.my.cnf.XXXXX) +chmod 600 $MYCNF +trap "rm -f $MYCNF" 1 2 3 6 9 15 +cat << EOT > $MYCNF +[client] +user=$USUARIO +password=$PASSWORD +EOT + +# MYSQL: Excluimos las tablas del servidor de administración (entornos) y repositorios +mysqldump --defaults-extra-file=$MYCNF --opt $CATALOG \ --ignore-table=${CATALOG}.entornos \ --ignore-table=${CATALOG}.repositorios \ --ignore-table=${CATALOG}.usuarios > $MYSQLFILE # Tabla usuario -mysqldump --opt --no-create-info -u $USUARIO -p$PASSWORD $CATALOG usuarios > $MYSQLFILE2 +mysqldump --defaults-extra-file=$MYCNF --opt --no-create-info $CATALOG \ + usuarios > $MYSQLFILE2 +# Borrar fichero temporal +rm -f $MYCNF # IP SERVIDOR echo $ServidorAdm > $TMPDIR/IPSERVER.txt @@ -102,5 +116,6 @@ echo $ServidorAdm > $TMPDIR/IPSERVER.txt echo "Creamos un archivo comprimido con los datos: $BACKUPFILE." cd /tmp tar -czvf $BACKUPFILE ${TMPDIR##*/} &>/dev/null + # Cambio permisos: sólo puede leerlo el root chmod 600 $BACKUPFILE diff --git a/installer/opengnsys_import.sh b/installer/opengnsys_import.sh index 69f44604..e58da24f 100755 --- a/installer/opengnsys_import.sh +++ b/installer/opengnsys_import.sh @@ -109,15 +109,27 @@ cp -r $TMPDIR/menus $OPENGNSYS/www # MYSQL echo " * Importamos informacion mysql." source $OPENGNSYS/etc/ogAdmServer.cfg +# Crear fichero temporal de acceso a la BD +MYCNF=$(mktemp /tmp/.my.cnf.XXXXX) +chmod 600 $MYCNF +trap "rm -f $MYCNF" 1 2 3 6 9 15 +cat << EOT > $MYCNF +[client] +user=$USUARIO +password=$PASSWORD +EOT + # Copia de seguridad del estado de la base de datos -mysqldump --opt -u $USUARIO -p$PASSWORD $CATALOG > $MYSQLBCK +mysqldump --defaults-extra-file=$MYCNF --opt $CATALOG > $MYSQLBCK # Importamos los datos nuevos -mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" < $MYSQLFILE &>/dev/null +mysql --defaults-extra-file=$MYCNF -D "$CATALOG" < $MYSQLFILE &>/dev/null [ $? -ne 0 ] && echo "ERROR: Error al importar la información de la base de datos." # Importamos datos tabla usuario, ignoramos los repetidos sed -i -e s/IGNORE//g -e s/INSERT/"\nALTER TABLE usuarios ADD UNIQUE (usuario);\n\nINSERT IGNORE"/g $MYSQLFILE2 -mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" < $MYSQLFILE2 &>/dev/null +mysql --defaults-extra-file=$MYCNF -D "$CATALOG" < $MYSQLFILE2 &>/dev/null [ $? -ne 0 ] && echo "ERROR: Error al importar la información de los usuarios de la consola" +# Borrar fichero temporal +rm -f $MYCNF echo -e "Se ha terminado de importar los datos del backup. \n\nSe han realizado copias de seguridad de los archivos antiguos:" echo " - $DHCPCFGDIR/dhcpd.conf-$(date +%Y%m%d)" |