La necessitat
Tenim varis ordinadors a disponibilitat pública. El problema és que molts usuaris deixen arxius descarregats, sessions obertes a les pàgines web i, fins i tot, canvis de configuració.
Necessitam crear una tasca que no deixi cap rastre d’ús.
La idea
Farem un script que s’executi a l’arrancada de l’ordinador i faci “neteja”.
La sol·lució
Cream usuaris
– Un usuari “administrador” amb contrasenya amb el qual farem totes les configuracions del sistema.
– Un usuari “public” sense contrasenya i sense permisos d’administador que sirà el que empraran el usuaris normalment.
Instal·lació de programari
Insta·larem amb l’usuari administrador el programari i impresores. Necessitam el 7z
Configuració de l’usuari “públic”
Entrarem al sistema amb l’usuari “públic” i configurarem icones, colors, menús, accessos directes a carpetes si és necessari, configuració del programari, …
Entrada al sistema de forma automàtica
Configurarem l’entrada automàtica al sistema per l’usuari “públic” i temps d’espera de 30 segons per donar temps a acabar l’script. Si entram amb l’usuari sense haver acabat d’executar-se veurem icones extranyes, menús que no es veuen, etc.
Cream fitxer base a restaurar
Tancam la sessió de l’usuari “public” i entram com usuari administrador. En una consola executam:
cd /home
sudo 7z a usuari.7z usuari
Cream script de restauració
Cream el fitxer /etc/init.d/restaura.sh que bàsicament fa:
- Esborra el home de l’usuari
- El crea buit.
- Restaura la còpia del fitxer comprimit.
- Dona permisos adeqüats a la carpeta /home/usuari
#!/bin/bash
FILENAME=/var/log/restaura.log
cd /home
rm -rf /home/usuari >$FILENAME
mkdir /home/usuari >>$FILENAME
7z x usuari.7z >>$FILENAME
chown -R usuari:usuari /home/usuari >>$FILENAME
Cridam al script quan arranqui el sistema
Opció A) En el nostre cas, com que utilitzam una distribució basada en debian, executam la següent comanda:
update-rc.d restaura.sh defaults
Opció B) Desde el fitxer /etc/rc.local. Afegim la línia següent a l’esmentat fitxer abans del “exit 0”
/etc/init.d/restaura.sh
😉