diff options
author | ramon <ramongomez@us.es> | 2013-03-12 16:17:14 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2013-03-12 16:17:14 +0000 |
commit | 7d5d8492f7d41acc41b5e46889a33be211fe9caf (patch) | |
tree | a76cf4c6cad7531473cb3f8fc0c6af0f829e680f /installer/opengnsys_uninstall.sh | |
parent | 2d0827b534dca8698d46ce83e151ea47fc0446ff (diff) |
#586: Corregidas 2 erratas y añadida protección con acceso por fichero de configuración de MySQL en script de desinstalación.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3685 a21b9725-9963-47de-94b9-378ad31fedc9
Diffstat (limited to 'installer/opengnsys_uninstall.sh')
-rwxr-xr-x | installer/opengnsys_uninstall.sh | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/installer/opengnsys_uninstall.sh b/installer/opengnsys_uninstall.sh index 121102a7..d89ae99f 100755 --- a/installer/opengnsys_uninstall.sh +++ b/installer/opengnsys_uninstall.sh @@ -33,6 +33,7 @@ OPENGNSYS="/opt/opengnsys" # Directorio de OpenGnSys OGIMG="images" # Directorio de imágenes del repositorio OPENGNSYS_CLIENT_USER="opengnsys" # Usuario Samba OPENGNSYS_OLDDATABASE="ogBDAdmin" # Antigua base de datos +MYCNF=/tmp/.my.cnf.$$ # Fichero temporal con credenciales de acceso a la BD. # Sólo ejecutable por usuario root @@ -46,13 +47,13 @@ fi echo "Uninstalling OpenGnSys services." if [ -x /etc/init.d/opengnsys ]; then /etc/init.d/opengnsys stop - if test which update-rc.d 2>/dev/null; then + if [ -n "$(which update-rc.d 2>/dev/null)" ]; then update-rc.d -f opengnsys remove else chkconfig --del opengnsys fi fi -# Eliminar bases de datos. +# Comprobar acceso a la bases de datos. echo "Erasing OpenGnSys database." DROP=1 if ! mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"quit" 2>/dev/null; then @@ -66,13 +67,26 @@ if ! mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"quit" 2>/dev/null; then fi fi if test $DROP; then - mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"DROP DATABASE $OPENGNSYS_OLDDATABASE;" 2>/dev/null - mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"DROP DATABASE $OPENGNSYS_DATABASE;" 2>/dev/null - mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"DROP USER '$OPENGNSYS_DB_USER';" 2>/dev/null - mysql -u root -p"$MYSQL_ROOT_PASSWORD" <<<"DROP USER '$OPENGNSYS_DB_USER'@'localhost';" 2>/dev/null + # Componer fichero temporal con credenciales de conexión a la base de datos. + touch $MYCNF + 600 $MYCNF + cat << EOT > $MYCNF +[client] +user=root +password=$MYSQL_ROOT_PASSWORD +EOT + # Eliminar bases de datos. + mysql --defaults-extra-file=$MYCNF 2> /dev/null << EOT +DROP DATABASE $OPENGNSYS_OLDDATABASE; +DROP DATABASE $OPENGNSYS_DATABASE; +DROP USER '$OPENGNSYS_DB_USER'; +DROP USER '$OPENGNSYS_DB_USER'@'localhost'; +EOT + # Borrar el fichero temporal de credenciales. + rm -f $MYCNF fi # Quitar configuración específica de Apache. -test which a2dissite 2>/dev/null && a2dissite opengnsys +[ -n "$(which a2dissite 2>/dev/null)" ] && a2dissite opengnsys rm -f /etc/{apache2/{sites-available,sites-enabled},httpd/conf.d}/opengnsys* for serv in apache2 httpd; do [ -x /etc/init.d/$serv ] && /etc/init.d/$serv reload |