source: server/bin/setserveraddr @ be48687

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 be48687 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: 2.3 KB
Line 
1#!/bin/bash
2# setserveraddr: modifica los ficheros de configuración para asignar los valores
3#       de la interfaz de red solicitada.
4# Nota: se enlazan los ficheros a los predefinidos detectados para la interfaz.
5# Uso:  setserveraddr iface
6# Autor: Ramon Gomez - Univ. Sevilla
7# Fecha: 2011-01-25
8
9
10# Variables globales.
11PROG="$(basename $0)"
12MYCNF=/tmp/.my.cnf.$$
13
14# Comprobar parámetros.
15if [ $# -ne 1 ]; then
16        echo "$PROG: Incorrect operand. Format: $PROG device" >&2
17        exit 1
18fi
19if [ "$USER" != "root" ]; then
20        echo "$PROG: Need to be root." >&2
21        exit 1
22fi
23
24# Detectar la interfaz de red.
25DEVICES=$(ip -o link show up|awk -F: '$2!~/lo/ {print $2}')
26FOUND=0
27for dev in $DEVICES; do
28        [ "$dev" == "$1" ] && FOUND=1;
29done
30
31if [ $FOUND == 1 ]; then
32        # Comprobar si hay que modificar la configuración de DHCP.
33        CHANGE=0
34        for f in /etc/{dhcp,dhcp3}/dhcpd.conf; do
35                file="${f/./-$1.}"
36                if [ -f $file -a ! $f -ef $file ]; then
37                        ln -f $file $f
38                        CHANGE=1
39                fi
40        done
41        # Si ha cambiado la configuración, reiniciar DHCP.
42        if [ $CHANGE == 1 ]; then
43                for f in /etc/init.d/{isc-dhcp-server,dhcp3-server,dhcpd}; do
44                        [ -x $f ] && $f restart
45                done
46        else
47                echo "Don't change the DHCP configuration."
48        fi
49        # Comprobar si hay que modificar la configuración de OpenGnsys.
50        OPENGNSYS=/opt/opengnsys
51        CHANGE=0
52        for f in etc/{ogAdmServer,ogAdmRepo,ogAdmAgent}.cfg www/controlacceso.php client/etc/ogAdmClient.cfg; do
53                file="$OPENGNSYS/${f/./-$1.}"
54                if [ ! -f $file ]; then
55                        echo "$PROG: File $file does not exist." >&2
56                        exit 2
57                fi
58                cfg=$OPENGNSYS/$f
59                if [ ! $cfg -ef $file ]; then
60                        ln -f $file $cfg
61                        CHANGE=1
62                fi
63        done
64        # Si ha cambiado la configuración, reiniciar OpenGnSys y actualizar la BD.
65        if [ $CHANGE == 1 ]; then
66                /etc/init.d/opengnsys restart
67                source $OPENGNSYS/etc/ogAdmServer.cfg
68                # Componer fichero con credenciales de conexión. 
69                touch $MYCNF
70                chmod 600 $MYCNF
71                cat << EOT > $MYCNF
72[client]
73user=$USUARIO
74password=$PASSWORD
75EOT
76                # Ejecutar actualización y borrar fichero de credenciales.
77                mysql --defaults-extra-file=$MYCNF -D "$CATALOG" -e \
78                         "UPDATE entornos SET ipserveradm='$ServidorAdm' WHERE identorno=1"
79                rm -f $MYCNF
80                echo "Default server interface set to: $1 ($ServidorAdm)"
81        else
82                echo "Don't change the default interface: $1"
83        fi
84else
85        echo "$PROG: Network device not found. Format: $PROG device" >&2
86        exit 1
87fi
88
Note: See TracBrowser for help on using the repository browser.