66 lines
3.4 KiB
Bash
66 lines
3.4 KiB
Bash
#!/bin/bash
|
|
#/**
|
|
#@file configureGroup
|
|
#@brief Script de ejemplo de post-configuracion del sistema operativo especifica de cada grupo de ordenadores.
|
|
#@brief El directorio del grupo en el repositorio se situa en /opt/opengnsys/groups/Nombre_Grupo
|
|
#@brief Se ponen archivos o marcas dentro del directorio del grupo (si queremos que afecte a todas las imagenes)
|
|
#@brief o del subdirectorio de la imagen dentro del grupo. Los archivos se copian en el sitio correcto del sistema
|
|
#@brief y las marcas se comprueba que existen para inicar una accion (ej: cambiar registro)
|
|
#@param str_repo repositorio de imágenes (remoto o caché local)
|
|
#@param path_image camino de la imagen (sin extensión)
|
|
#@param int_ndisk nº de orden del disco
|
|
#@param int_npartition nº de orden de la particion
|
|
#@return
|
|
#@exception OG_ERR_FORMAT Formato incorrecto.
|
|
#@exception OG_ERR_PARTITION Tipo de partición desconocido o no se puede montar.
|
|
#@warning License: GNU GPLv3+
|
|
#*/
|
|
|
|
# Si se solicita, mostrar ayuda.
|
|
if [ "$*" == "help" ]; then
|
|
ogHelp "$0" "$0 path_dir str_image int_ndisk int_npart" \
|
|
"$0 REPO /aula1/winxp 1 1"
|
|
exit
|
|
fi
|
|
|
|
# Error si no se reciben 4 parámetros.
|
|
[ $# -eq 4 ] || ogRaiseError $OG_ERR_FORMAT || exit $?
|
|
|
|
# Procesar parámetros.
|
|
PART=$(ogMount $3 $4) || ogRaiseError $OG_ERR_PARTITION "$3 $4" || exit $?
|
|
IMGNAME=$(basename $2)
|
|
GROUPDIR=$(ogGetGroupDir)
|
|
IMGDIR=$GROUPDIR/$IMGNAME
|
|
|
|
# Comprobamos que exista GROUPDIR. Si no existe no es error, nada que configurar
|
|
[ ! -x "$GROUPDIR" ] && exit 0
|
|
|
|
|
|
TYPE=$(ogGetOsVersion $3 $4)
|
|
|
|
case "$TYPE" in
|
|
Linux*) echo "PostConfiguracion de Linux para el grupo $group"
|
|
# Si existen estos ficheros en el directorio del grupo o de la imagen se copian a la particion
|
|
[ -e $IMGDIR/menu.lst ] && echo "cp -f $IMGDIR/menu.lst $PART/boot/grub/menu.lst" && cp -f $IMGDIR/menu.lst $PART/boot/grub/menu.lst
|
|
[ -e $IMGDIR/grub.cfg ] && echo "cp $IMGDIR/grub.cfg $PART/boot/grub/grub.cfg" && cp -f $IMGDIR/grub.cfg $PART/boot/grub/grub.cfg
|
|
[ -e $IMGDIR/hosts ] && echo "cp -f $IMGDIR/hosts $PART/etc/hosts" && cp -f $IMGDIR/hosts $PART/etc/hosts
|
|
[ -e $IMGDIR/fstab ] && echo "cp -f $IMGDIR/fstab $PART/etc/fstab" && cp -f $IMGDIR/fstab $PART/etc/fstab
|
|
[ -e $IMGDIR/xorg.conf ] && echo "cp -f $IMGDIR/xorg.conf $PART/etc/X11/xorg.conf" && cp -f $IMGDIR/xorg.conf $PART/etc/X11/xorg.conf
|
|
[ -e $IMGDIR/rc.local ] && echo "cp -f $IMGDIR/rc.local $PART/etc/rc.local" && cp -f $IMGDIR/rc.local $PART/etc/rc.local
|
|
[ -e $IMGDIR/interfaces ] && echo "cp -f $IMGDIR/interfaces $PART/etc/network/interfaces" && cp -f $IMGDIR/interfaces $PART/etc/network/interfaces
|
|
[ -e $IMGDIR/passwd ] && echo "cp -f $IMGDIR/passwd $PART/etc/passwd" && cp -f $IMGDIR/passwd $PART/etc/passwd
|
|
;;
|
|
|
|
*Windows\ XP) echo "PostConfiguracion de XP para el grupo $group"
|
|
# Si existen estos ficheros en el directorio del grupo o de la imagen se copian a la particion
|
|
[ -e $IMGDIR/SAM ] && echo "cp -f $IMGDIR/SAM $PART/Windows/System32/config/SAM" && cp -f $IMGDIR/SAM $PART/Windows/System32/config/SAM
|
|
;;
|
|
*Windows\ 7*) echo "Postconfiguracion de W7 para el grupo $group"
|
|
# Si existen estos ficheros en el directorio del grupo o de la imagen se copian a la particion
|
|
[ -e $IMGDIR/SAM ] && echo "cp -f $IMGDIR/SAM $PART/Windows/System32/config/SAM" && cp -f $IMGDIR/SAM $PART/Windows/System32/config/SAM
|
|
;;
|
|
*) exit 0
|
|
;;
|
|
esac
|
|
|