diff options
author | ramon <ramongomez@us.es> | 2013-03-12 12:26:21 +0000 |
---|---|---|
committer | ramon <ramongomez@us.es> | 2013-03-12 12:26:21 +0000 |
commit | 9d380eca62c8d61916facb45c0bdaa8e49a14538 (patch) | |
tree | 6354525e86ec34f2d6ac8fd018b4cc129613eec4 | |
parent | ddd91fb1f94ca5b515fa1a40384c84ffbeb69be0 (diff) |
#586: Ampliar seguridad al resto de scripts que acceden a MySQL.
git-svn-id: https://opengnsys.es/svn/branches/version1.0@3682 a21b9725-9963-47de-94b9-378ad31fedc9
-rwxr-xr-x | server/bin/compareDhcpOpengnsys | 17 | ||||
-rwxr-xr-x | server/bin/listclientmode | 2 | ||||
-rwxr-xr-x | server/bin/setclientmode | 6 | ||||
-rwxr-xr-x | server/bin/setserveraddr | 2 |
4 files changed, 18 insertions, 9 deletions
diff --git a/server/bin/compareDhcpOpengnsys b/server/bin/compareDhcpOpengnsys index 5bf3cd43..bc6447d1 100755 --- a/server/bin/compareDhcpOpengnsys +++ b/server/bin/compareDhcpOpengnsys @@ -12,6 +12,7 @@ PROG=$(basename $0) DHCPFILE=${DHCPFILE:-/etc/dhcp/dhcpd.conf} TMP_DHCP=/tmp/$PROG-dhcp$$ TMP_MYSQL=/tmp/$PROG-mysql$$ +TMP_MYCNF=/tmp/.my.cnf.$$ OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"} SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg @@ -27,8 +28,16 @@ fi # Obtener datos de acceso a la Base de datos. source $SERVERCONF - -trap "rm -f $TMP_DHCP $TMP_MYSQL" 1 2 3 9 15 +# Componer fichero con credenciales de conexión. +touch $TMP_MYCNF +chmod 600 $TMP_MYCNF +cat << EOT > $TMP_MYCNF +[client] +user=$USUARIO +password=$PASSWORD +EOT + +trap "rm -f $TMP_DHCP $TMP_MYSQL $TMP_MYCNF" 1 2 3 9 15 # Creo fichero temporal del dhcp grep -v "#" $DHCPFILE |egrep -e "host " -e "hardware ethernet" -e fixed-address | sed -e 's/.$//' \ |sed -e s/"^.*host "//g -e s/\{/\;/g -e s/"^.*hardware ethernet "/=/g -e s/"^.*fixed-address "/=/g \ @@ -37,7 +46,7 @@ grep -v "#" $DHCPFILE |egrep -e "host " -e "hardware ethernet" -e fixed-address # Creo fichero temporal del mysql, de la base de datos de opengnsys -mysql -u "$USUARIO" -p"$PASSWORD" -D "$CATALOG" -N -e \ +mysql --defaults-extra-file=$TMP_MYCNF -D "$CATALOG" -N -e \ "select CONCAT_WS (';', nombreordenador, mac, ip) from ordenadores order by nombreordenador;" > $TMP_MYSQL # Comparo los ficheros @@ -45,5 +54,5 @@ echo "Comparamos las configuraciones: < dhcp y > mysql" diff -bi $TMP_DHCP $TMP_MYSQL [ $? == 0 ] && echo "El ficheros del servicio dhcp y la base de datos de ogAdmBD tienen la misma configuracion" -rm -f $TMP_DHCP $TMP_MYSQL +rm -f $TMP_DHCP $TMP_MYSQL $TMP_MYCNF diff --git a/server/bin/listclientmode b/server/bin/listclientmode index 9b6866fd..da4404e0 100755 --- a/server/bin/listclientmode +++ b/server/bin/listclientmode @@ -39,7 +39,7 @@ EOT # Borrar el fichero temporal si termina el proceso. trap "rm -f $MYCNF" 0 1 2 3 6 9 15 # Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada. -mysql --defaults-file=$MYCNF -D "$CATALOG" -s -N -e \ +mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \ "SELECT nombreordenador, arranque FROM ordenadores JOIN aulas USING (idaula) WHERE aulas.nombreaula='$RESOURCE' diff --git a/server/bin/setclientmode b/server/bin/setclientmode index bf790b5f..2a695358 100755 --- a/server/bin/setclientmode +++ b/server/bin/setclientmode @@ -47,7 +47,7 @@ EOT # Borrar el fichero temporal si termina el proceso. trap "rm -f $MYCNF" 0 1 2 3 6 9 15 # Buscar ordenador individual o todos los de una aula. -ETHERNET=$(mysql --defaults-file=$MYCNF -D "$CATALOG" -s -N -e \ +ETHERNET=$(mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \ "SELECT mac FROM ordenadores JOIN aulas USING (idaula) WHERE aulas.nombreaula='$RESOURCE' @@ -69,7 +69,7 @@ for MAC in $ETHERNET; do # Si no está definida la variable LANG, usar idioma inglés por defecto. [ -z "$LANG" -o "$LANG" == "C" ] && LANG="en" # Obtener de la BD los parámetros de arranque asociados (separador es TAB). - DATOS=$(mysql --defaults-file=$MYCNF -D "$CATALOG" -s -N -e \ + DATOS=$(mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \ "SELECT ' LANG=$LANG', ' ip=', CONCAT_WS (':', ordenadores.ip, (@repoip:=repositorios.ip), aulas.router, aulas.netmask, @@ -92,7 +92,7 @@ for MAC in $ETHERNET; do # Crear fichero PXE a partir de la plantilla con los datos obtenidos en la BD. sed -e "s/vga=[0-9]*//g; s/INFOHOST/$DATOS/g" $TEMPLATE >$PXEFILE # Actualizar en la BD el modo de arranque asociada el cliente. - mysql --defaults-file=$MYCNF -D "$CATALOG" -e \ + mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \ "UPDATE ordenadores SET arranque='$BOOTMODE' WHERE mac='$MAC';" fi let NPC=NPC+1 diff --git a/server/bin/setserveraddr b/server/bin/setserveraddr index 694007d3..4e4a9c4b 100755 --- a/server/bin/setserveraddr +++ b/server/bin/setserveraddr @@ -74,7 +74,7 @@ user=$USUARIO password=$PASSWORD EOT # Ejecutar actualización y borrar fichero de credenciales. - mysql --defaults-file=$MYCNF -D "$CATALOG" -e \ + mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \ "UPDATE entornos SET ipserveradm='$ServidorAdm' WHERE identorno=1" rm -f $MYCNF echo "Default server interface set to: $1 ($ServidorAdm)" |