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
RevLine 
[5cfec97]1#!/bin/bash
[b0c7586]2#/**
[5cfec97]3#@file    registeredsoftware
4#@brief   Lista el software instalado en una imagen de sistema.
[b0c7586]5#@usage   registeredsoftware Image
6#@param   Image     Nombre canónico de la imagen.
[5cfec97]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
[9e4fa8e]11#@version 1.1.0 - Incluir sistema operativo.
12#@author  Ramón Gómez - Univ. Sevilla
13#@date    2016-06-08
[b0c7586]14#**/
[5cfec97]15
16
17# Variables.
18OPENGNSYS=${OPENGNSYS:-"/opt/opengnsys"}
19SERVERCONF=$OPENGNSYS/etc/ogAdmServer.cfg
20
[b0c7586]21source $OPENGNSYS/lib/ogfunctions.sh || exit 1
22
23# Mostrar ayuda o número de versión.
24[ "$*" == "help" ] && help
25[ "$*" == "version" ] && version
[5cfec97]26
27# Control básico de errores.
[b0c7586]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"
[5cfec97]31
32# Sustituir caracteres ' por \' para evitar inyección SQL.
[b0c7586]33RESOURCE="${1//\'/\\\'}"
[5cfec97]34
35# Obtener lista de componentes del perfil de software asociado a la imagen.
[b0c7586]36dbexec "SELECT descr
37          FROM ((SELECT 1 AS orden, nombresos.nombreso AS descr
[9e4fa8e]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
[5cfec97]44                   FROM perfilessoft
[9e4fa8e]45                   JOIN perfilessoft_softwares USING(idperfilsoft)
46                   JOIN softwares USING(idsoftware)
47                   JOIN imagenes USING(idperfilsoft)
48                  WHERE imagenes.nombreca='$RESOURCE')) AS unidas
[b0c7586]49         ORDER BY orden ASC, descr ASC;"
[5cfec97]50
Note: See TracBrowser for help on using the repository browser.