congelar un usuario (solucionado)

18 envíos / 0 nuevos
Último envío
santiago.camblor
Imagen de santiago.camblor
congelar un usuario (solucionado)

¿Hay forma de congelar un usuario para que no pueda hacer modificaciones ni siquiera en el escritorio o al menos para que al restaurar la sesión desaparezcan los cambios que pudieran haberse hecho?

Esto es para usarlo en un aula en el que cada ordenador es usado por más de 10 alumnos diferentes. A los alumnos mayores se les crea un usuario personal, pero hacerlo con todos es muy tedioso porque estamos hablando de cientos de alumnos y para mí es más cómodo que compartan usuario. Por eso me gustaría poder tener un usuario que no se pueda modificar.

santiago.camblor
Imagen de santiago.camblor
Una posibilidad

Se me ha ocurrido que quizá lo pueda conseguir cambiando el propietario de determinados archivos para que el usuario no pueda escribir en ellos.

He probado a cambiar el propietario del directorio .config/lxpanel del usuario que quiero capar. Puede modificar los paneles, pero al reiciarse la sesión aperecen como estaban anteriormente. Me gusta.

He probado a cambiar el propietario de .config, para congelarlo todo. Entonces no entra en la sesión. Supongo que para entrar, el usuario debe poder escribir en ese directorio 

introlinux
Hola, Santiago, concreta un

Hola, Santiago, concreta un poco lo que quieres hacer. ¿Sólo congelar posibles cambios en las configuraciones o también que cualquier archivo que se descargue de internet o documentos que se creen en el ordenador desaparezcan al reiniciar?

 

santiago.camblor
Imagen de santiago.camblor
Concretando

Lo que comentas me parece bien. También puede ser interesante que desaparezcan los archivos descargados y los documentos creados.

introlinux
Puedes usar varias formas

Puedes usar varias formas para congelar un usuario. Una posibilidad es montar /home como sólo lectura en un sistema de ficheros squashfs, vamos, el mismo método que usa un livecd (se puede escribir, pero al reiniciar desaparece todo). Pero sinceramente creemos que lo más sencillo y práctico es copiar la carpeta de usuario que quieras conservar a otro lugar y usar rsync para mantenerla siempre igual. Esto es:

0) Fija la carpeta que quieras congelar en otro lugar, por ejemplo, en /srv que normalmente no se usa para nada (puedes crear la carpeta que quieras en cualquier otro lugar). Procura que tenga permisos de escritura con "sudo chmod ugo=rwx /srv"

1) Luego te logueas como el usuarioacongelar para todos los archivos que crees mantenga sus permisos y propietario y lanzas:

rsync -va /home/usuarioacongelar/ /srv

Esto copiará todo lo que hay en usuarioacongelar en /srv. Puedes meter ese comando en un script y llamarlo cada vez que quieras actualizar la carpeta usuarioacongelar, por ejemplo, lo puedes llamar "fijausuario".

2) Crea otro script, por ejemplo, llamado "restaurausuario" que se encargará de restaurar la carpeta home en cada reinicio con el siguiente contenido:

rsync -va --delete /srv/ /home/usuarioacongelar/

La opción --delete (con dos guiones delante) indica a rsync que debe restaurarlo todo para dejarlo exactamente igual que está en /srv. La ventaja de usar rsync es que sólo tratará las diferencias, esto es, no copiará todo todas las veces como haría el comando cp.

Lo tienes que colocar para que se ejecute antes de que carguen las X, por ejemplo, en /etc/X11/Xsession.d/51x11restaura

Y listo, en cada reinicio restaurausuario mantendrá a raya la carpeta de usuario completamente y cuando quieras meter tú algún cambio, lo único que tienes que hacer es hacer esos cambios y luego acordarte de lanzar el comando fijausuario para que no se borren al reiniciar.

Si quieres que únicamente sean las configuraciones las que se mantengan fijas, tienes que hacer un paso intermedio. Vamos a hacer unas pruebas y te comentamos la opción más sencilla.

santiago.camblor
Imagen de santiago.camblor
Otra opción

Se me ha ocurrido otra forma de hacerlo:

He editado /home/usuariocongelado/.config/lxssesión/LXDE/autostart y he añadido esta linea: @rm -r /home/usuariocongelado/Doumentos/* Al reiniciar la sesión se borran los documentos que se metieron en la carpeta /Documentos.

Sobre lo que comentas de la particion squafshts, eso afectaría a todos los usuarios ¿no? No habría forma de hacerlo sólo con un usuario. Es decir, ¿Puedo montar exclusivamente /home/usuariocongelado en esa partición?

introlinux
Esa solución es de poco

Esa solución es de poco alcance ya que si se guardan cosas en cualquier otra carpeta no tendría efecto.

Te adjunto lo que hemos pensado y probado como una solución sencilla:

https://drive.google.com/file/d/0B6hCoiq1TeUxckFYSnJ2ZFhpU0U/edit?usp=sh...

ó

http://minino.galpon.org/public/improvements/minino-congelador.tar.gz

En el LEEME.txt viene explicado el funcionamiento, si te surge alguna duda, ya sabes.

 

santiago.camblor
Imagen de santiago.camblor
Perfecto

Funciona perfectamente. ¡Qué competentes sois!

santiago.camblor
Imagen de santiago.camblor
Otro posible uso del congelador ¿Es correcto?
Se me ha ocurrido otro posible uso del congelador de usuarios muy útil en aulas de informática. Consiste en un sistema para inicializar el aula al principio de cada curso, para que se borren los documentos y modificaciones que se hicieron en el curso anterior. Habría que ejecutar fijausuario de todos los usuarios que se quieran inicializar, pero no incorporarlos al script restaurarusuario. Se haría uno similar a ese escript, con todos los usuarios que se quieran inicializar pero en lugar de ejecutarse automáticamente al principio de cada sesión, se ejecutaría manuealmente sólo cuando se quiera inicializar el ordenador para un curso nuevo. ¿Es correcto?
mbouzada
Otro posible uso del congelador
Tal y como lo comentas, si :-)
Omitir/eliminar el fichero 51x11..., así ya no trabaja en cada inicio/reinicio y, llegado el momento, ejecutar la misma linea que se incluía en ese fichero, pero desde terminal.
santiago.camblor
Imagen de santiago.camblor
Estupendo, pero no elimino el
Estupendo, pero no elimino el 51x11 ya que me encanta, para congelar un usuario concreto. El resto no los quiero congelar, sólo inicializar al principio de curso.
mbouzada
Cierre de hilo [Solucionado]
Estamos haciendo las pruebas finales de un script con interface (será un único fichero) para poder hacerlo «guapo» y sencillo. lo publicaremos dentro de unos días.

Recuerda que es norma en los foros, que una vez solucionado el problema planteado, la persona que lo inició edite la primera entrada y al título le añada. [Solucionado]
Así sirve de referencia a cualquiera que consulte el foro.
santiago.camblor
Imagen de santiago.camblor
Ok
Ok. No conocía esa norma.
santiago.camblor
Imagen de santiago.camblor
¿Error en fijausuario?

Creo que hay un error en el script fijausuario. ¿No debería incluir la opción  --delete  en rsync para que se puedan fijar un usuario despueś de haberle quitado algo?

mbouzada
«Congelar» usuarios

Como comenté anteriormente, estamos trabajando en un script para hacer este trabajo. Puedes descargarlo y probarlo (bajo tu responsabilidad).

sudo wget http://minino.galpon.org/public/improvements/minino-desktop-freeze -O /usr/local/bin/minino-desktop-freeze

ejecutalo desde terminal con:

sudo minino-desktop-freeze

es probable que tengas que darle permisos de ejecución

sudo chmod +x /usr/local/bin/minino-desktop-freeze

O si lo prefieres, descargalo (http://minino.galpon.org/public/improvements/minino-desktop-freeze) y fijate en el case final como vamos construyendo el restaurador (las líneas: line_to_send=)

santiago.camblor
Imagen de santiago.camblor
probado y no va

He probado el script del congelador (por supuesto bajo mi responsabilidad, jamás se me ocurriría echaros algo en cara) y no va. No solo eso, sino que al reiniciar el equipo, ya no arranca. No hay que preocuparse, porque estoy instalando equipos en mi aula con minino y en media hora tengo uno perfectamente montado. Tengo 30 equipos con minino y aparentemente van de coña.

Quizá el problema resida en que probé el script en un ordenador que ya tenía el script viejo.

El script viejo me gusta y funciona bien, pero he observado que no me funciona fijausuario una vez que ya he lanzado ese escript anteriormente. Me explico: en un usuario que ya tengo congelado, hago unas modificaciones (quito el panel de la izquierda y elimnino mídori -ya que se cierra solo- del panel inferior). Cierro la sesión, ejecuto fijausuario usuario y al entrar de nuevo, vuelve a aparecer el panel izquierdo y midorí en el inferior. Incluso he modificado fijausuario añadiendo --delete. Incluso he borrado el panel izquierdo de /srv/home/usuario/.config/lxpanel/LXDE/panels. Nada, al reiniciar vuelve a aparecer.

santiago.camblor
Imagen de santiago.camblor
Falsa alarma

Ya he descubierto por qué el equipo no arrancaba después. Cambié el nombre del equipo e incorporé un guión en el mismo (PC_17). Resulta que el nombre del host no puede tener guiones. Corregido este error, el equipo sí arranca. Muy útil el modo de recuperación.

Cuando pueda vuelvo a probar el script.

santiago.camblor
Imagen de santiago.camblor
otra opción interesante.

El uso del congelador de usuarios, me está facilintado mucho las clases, ya quye siempre está impecable y los alumnos no pueden copiar trabajos de otros.

Mis alumnos mayores tienen usuarios no congelados y están encantados por que les encanta personalizarlo. Sin embargo, me estoy encontrando con una dificultad y es que con mayor frecuencia de la deseable, eliminan el panel inferior lo que me obliga a perder tiempo volviéndoselo a poner. Sería estupendo que los usuarios no congelados, tuvieran ese panel inferior congelado.

Creo que eso se podría conseguir añadiendo cp /etc/skel/.config/lxpanel/LXDE/panels/bottom  /home/usuario/.config/lxpanel/LXDE/panels/ al script 51x11restaurausuario