Para el usuario impaciente y que tenga ya correctamente instalado Apache PostgreSQL y PHP-3.0 se puede probar la siguiente secuencia:
Para crear una configuración de prueba con datos y usuarios de ejemplo, ejecutar a continuación el siguiente comando:
Si las cosas no funcionan, será preciso leer el resto del capítulo....
Verificar que el servidor apache está correctamente instalado y configurado. Esto significa que:
El paso siguiente es instalar y configurar el gestor de bases de datos. La distribución base utiliza PostGreSQL-7.0, por lo que las explicaciones siguientes se aplican a este RDBMS. Para otros sistemas, la filosofía es la misma, pero habra que personalizar en cada caso
createdb evote -U operador
createlang -U postgres -L /usr/lib/pgsql plpgsql evote
Una copia actualizada del paquete Free-Vote se puede encontrar en este enlace.
Por motivos de seguridad, NO SE DEBE ejecutar ni instalar Free-Vote como root. Además, no es necesario.
El proceso de instalación es el siguiente:
tar zxvf evote.tgz
psql evote -U operador -f database.sql
Editaremos el fichero config. Debido a un bug en el programa de backup pg_dump necesitaremos indicar en el fichero de configuración la contraseña del usuario postgres "operador" para que dicho programa funcione ( no soporta la opción "-U operador" ). Este parche será eliminado tan pronto como aparezca una revisión del programa pg_dump
En el caso de que queramos usar protocolo https en los accesos a la base de datos, deberemos poner la variable USE_HTTPS a 1
En el registro de sucesos del sistema, se guardan todas las incidencias que se producen en el programa. Existen diversos tipos de incidencias, cada una de ellas con un nivel de gravedad. El administrador deberá escoger el nivel de registro que desea en función del tipo de incidencia.
No se debe olvidar que la Legislación española sobre la Ley de protección de datos obliga a que todas las operaciones con datos personales queden registradas, así como las relacionadas con caídas y errores del sistema, o intentos de violación de seguridad de éste
La Ley Orgánica de Tratamiento Automatizado de Datos, obliga a los poseedores de bases de datos de carácter personal a dar de alta dicha base de datos, y a hacer claramente visibles los datos del administrador. Editaremos convenientemente el fichero info.php3. Para proceder al registro de la base de datos, contactaremos con la Agencia de Protección de Datos, rellenando y enviando los formularios. Si al cabo de un mes no se obtiene respuesta en contra, se asume la autorización
En Free-Vote además, el administrador juega un papel adicional: es el único autorizado a realizar modificaciones a la estructura y contenidos del sistema. Debe ser un usuario registrado con nivel de prioridad 6 (máximo). Idealmente sólo debería haber un administrador del sistema. Deberá conocer la contraseña del usuario postgres "operador", pues sólo él tiene permisos de acceso totales sobre la base de datos
Para registrar en el sistema al administrador ejecutamos el comando ./install.sh --register-sysop, o bien, si lo queremos realizar de forma manual, procederemos como sigue:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc,char *argv[]) {
char p[4];
time_t t=time(0);
if (argc == 3)
{ printf("%s",crypt(argv[1],argv[2]) ); exit(0); }
if (argc == 2) {
/* usamos un timestamp para obtener una semilla */
p[0]=((t&0x0f)+'A');
p[1]=(((t&0xf0)>>4)+'A');
p[3]='\0';
printf("%s",crypt(argv[1],p));
exit(0);
}
fprintf(stderr,"Usage: %s key [ seed ]\n",argv[0]);
exit(1);
}
Lo compilamos con el comando
gcc -O2 lib/crypt.c -o crypt -lcrypt
psql evote -U operador
INSERT INTO usuarios (groupid,passwd,nombre,apellidos,direccion,telefono,email) VALUES (6,'passwd','nombre','apellidos','direccion poblacion','telefono','email');"passwd" es el valor encriptado de la contraseña que previamente hemos escogido
SELECT userid FROM usuarios WHERE groupid=6;
Está previsto para una futura versión de Free-Vote el agrupar todas estas tareas en el script de instalación. Se admiten voluntarios...
Del mismo modo, futuras versiones del programa incluirán la distribución de éste en formatos de paquetes .deb y .rpm