source: server/bin/registeredsoftware

qndtest
Last change on this file was b0c7586, checked in by Ramón M. Gómez <ramongomez@…>, 4 years ago

#957: Script registeredsoftware: use common server functions and avoid SQL injection.

  • Property mode set to 100755
File size: 1.6 KB
Line 
1#!/bin/bash
2#/**
3#@file    registeredsoftware
4#@brief   Lista el software instalado en una imagen de sistema.
5#@usage   registeredsoftware Image
6#@param   Image     Nombre canónico de la imagen.
7#@return  Líneas con el formato:   programa versión
8#@version 1.0 - Creación del script.
9#@author  Ramón Gómez - Univ. Sevilla
10#@date    2014-02-27
11#@version 1.1.0 - Incluir sistema operativo.
12#@author  Ramón Gómez - Univ. Sevilla
13#@date    2016-06-08
14#**/
15
16
17# Variables.
18OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
19SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
20
21source $OPENGNSYS/lib/ogfunctions.sh || exit 1
22
23# Mostrar ayuda o número de versión.
24[ "$*" == "help" ] && help
25[ "$*" == "version" ] && version
26
27# Control básico de errores.
28[ $# -eq 1 ] || raiseError usage
29[ "$USER" != "root" ] && raiseError access "Need to be root"
30source $SERVERCONF 2>/dev/null || raiseError access "Sin acceso a fichero de configuración"
31
32# Sustituir caracteres ' por \' para evitar inyección SQL.
33RESOURCE="${1//\'/\\\'}"
34
35# Obtener lista de componentes del perfil de software asociado a la imagen.
36dbexec "SELECT descr
37          FROM ((SELECT 1 AS orden, nombresos.nombreso AS descr
38                   FROM perfilessoft
39                   JOIN imagenes USING(idperfilsoft)
40                   JOIN nombresos USING(idnombreso)
41                  WHERE imagenes.nombreca='$RESOURCE')
42                UNION
43                (SELECT 2, softwares.descripcion
44                   FROM perfilessoft
45                   JOIN perfilessoft_softwares USING(idperfilsoft)
46                   JOIN softwares USING(idsoftware)
47                   JOIN imagenes USING(idperfilsoft)
48                  WHERE imagenes.nombreca='$RESOURCE')) AS unidas
49         ORDER BY orden ASC, descr ASC;"
50
Note: See TracBrowser for help on using the repository browser.