Restaurar directorio home al apagar en LUbuntu

logoLUbuntuTras la restauración de un aula completa todo funciona correctamente, el problema viene cuando comienza su uso. A lo largo del día pasan muchos alumnos por el aula, y muchos tienden a desconfigurar el Escritorio, algo que incomoda bastante.

Tenemos varias opciones, la primera es utilizar un congelador, pero en años anteriores he tenido ciertos problemas, en Windows, todo hay que decirlo, y la segunda consiste en hacer un borrado del directorio home y restauración del mimo. Esta segunda opción es la que paso a detallar.

En primer lugar creamos el usuario en cuestión, en mi caso el usuario alumno, lo creamos de manera habitual e iniciamos sesión con este, configuramos el aspecto y todo lo que nos interese, accesos directos, etc. Una vez terminado esto cerramos sesión y volvemos a nuestro usuario administrador.

A continuación, comprimimos el directorio home al completo del usuario alumno.

$ sudo tar -cvzf alumno.tar /home/alumno

Con esto ya tendríamos una copia del perfil por defecto para nuestro usuario, como medida de precaución podemos añadir un punto (.) delante del nombre del fichero para ocultarlo, quedando .alumno.tar. En mi caso, este fichero se queda en /home, para no irme muy lejos, pero podéis ponerlo donde queráis.

El siguiente paso será crear el script encargado de hacer la limpieza, es algo muy sencillo, ya que lo que vamos a hacer es eliminar por completo el home del usuario y volver a restaurar a partir del fichero que hemos comprimido, quedaría algo así.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          restauraralu.sh
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Limpieza del directorio home
# Description:       Script para limpiar el usuario Alumno.
### END INIT INFO

rm -rf /home/alumno
cd /home/
tar -xzvf .alumno.tar
chown -R alumno:alumno /home/alumno

exit 0

Para que no muestre el warning Missing LSB information al añadir el script, poner las líneas que van desde ### BEGIN INIT INFO hasta ### END INIT INFO, ambas inclusive.

Copiamos el script restauraralu.sh en el directorio /etc/init.d.

$ sudo cp restauraralu.sh /etc/init.d

Una vez esté el script en el directorio, muy importante que este sea ejecutable y pertenezca al usuario y grupo root.

$ sudo chown root:root restauraralu.sh
$ sudo chmod 755 restauraralu.sh

Este directorio contiene los scripts que se ejecutan durante el arranque y parada del sistema, ahora sólo nos queda añadirlo, en mi caso para que se ejecute en la parada del sistema.

$ sudo update-rc.d restauraralu.sh stop 99 0 1 6 .

Con este comando le estamos indicando que debe ejecutarse en la parada del sistema, no olvidar el punto, concretamente con el 0 se ejecutará al parar el sistema (halt), el 6 para reiniciar (reboot) y el 1 para arrancar en modo single user, que viene a ser una configuración mínima para realizar tareas de administración. (ver más)

Ya sólo nos queda probar que funciona, y funciona realmente, deja al usuario limpio y listo para el siguiente.

Por último, si queremos quitar nuestro script del cierre del sistema deberemos ejecutar el siguiente comando.

$ sudo update-rc.d -f restauraralu.sh remove

Espero que os sirva.

Au!!