source: server/bin/listclientmode @ c073224

918-git-images-111dconfigfileconfigure-oglivegit-imageslgromero-new-oglivemainmaint-cronmount-efivarfsmultivmmultivm-ogboot-installerogClonningEngineogboot-installer-jenkinsoglive-ipv6test-python-scriptsticket-301ticket-50ticket-50-oldticket-577ticket-585ticket-611ticket-612ticket-693ticket-700ubu24tplunification2use-local-agent-oglivevarios-instalacionwebconsole3
Last change on this file since c073224 was 9d380ec, checked in by ramon <ramongomez@…>, 12 years ago

#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

  • Property mode set to 100755
File size: 1.5 KB
RevLine 
[61dbabb]1#!/bin/bash
[b5aae72]2# listclientmode: Lista la plantilla de arranque PXE para los clientes,
[61dbabb]3#       ya sea un equipo o un aula.
4# Nota: Si no existe un enlace entre el fichero PXE con la Ethernet del equipo y su
5#        archivo plantilla, se considera que la plantilla por omisión es "default".
[b5aae72]6# Uso:  listclienmode NombrePC | NombreAula
[61dbabb]7# Autores: Irina Gomez y Ramon Gomez - Univ. Sevilla, noviembre 2010
8
9
10# Variables.
11PROG=$(basename $0)
12OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
13SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
[d1d41ad]14MYCNF=/tmp/.my.cnf.$$
[61dbabb]15
16# Control básico de errores.
17if [ $# -ne 1 ]; then
18        echo "$PROG: Error de ejecución"
19        echo "Formato: $PROG [NOMBRE_PC|NOMBRE_AULA]"
20        exit 1
21fi
22if [ ! -r $SERVERCONF ]; then
23        echo "$PROG: Sin acceso a fichero de configuración"
24        exit 2
25fi
26
27# Obtener datos de acceso a la Base de datos.
28source $SERVERCONF
[75f9c01]29# Sustituir caracteres ' por \' para evitar inyección SQL.
30RESOURCE="${1//\'/\'}"
[d1d41ad]31# Componer fichero con credenciales de conexión.
32touch $MYCNF
33chmod 600 $MYCNF
34cat << EOT > $MYCNF
35[client]
36user=$USUARIO
37password=$PASSWORD
38EOT
39# Borrar el fichero temporal si termina el proceso.
40trap "rm -f $MYCNF" 0 1 2 3 6 9 15
41# Obtener nombre de ordenador individual o todos los de una aula e indicar su plantilla asociada.
[9d380ec]42mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -s -N -e \
[d1d41ad]43                "SELECT nombreordenador, arranque FROM ordenadores
44                   JOIN aulas USING (idaula)
45                  WHERE aulas.nombreaula='$RESOURCE'
46                     OR nombreordenador='$RESOURCE';" | \
47        awk '{ printf ("Equipo %s asociado a arranque tipo \"%s\"\n", $1, $2); }'
[61dbabb]48
Note: See TracBrowser for help on using the repository browser.