[Olpc-uruguay] Consulta sobre guardar datos en la XO

Andrés Ambrois andresambrois en gmail.com
Lun Ago 17 23:16:13 EDT 2009


On Monday 17 August 2009 10:12:23 pm Gabriel Eirea wrote:
> Estimado Mauricio:
>
> En Sugar hay un sistema de seguridad llamado Rainbow que hace que cada
> instancia de actividad en ejecución tenga asignado un usuario y un
> grupo distinto. Esto permite la aislación de las actividades, de
> manera que desde una actividad no se puedan modificar datos de otra.
>
> Para hacer lo que vos querés hacer, Sugar provee una variable de
> entorno llamada $SUGAR_ACTIVITY_ROOT que apunta a los directorios
> donde sí se puede escribir. La información está en:
>
> http://wiki.laptop.org/go/Low-level_Activity_API#Security

Hola Mauricio!

Como dice Gabriel, Rainbow se asegura que nuestra actividad no pueda escribir 
sobre otras actividades, o sobre la información del usuario. Para eso, crea un 
número de usuario/grupo de forma ad-hoc para cada actividad que se ejecuta. 

Sin embargo existen dos formas de sobrevivir a Rainbow. La primera es usar la 
API del datastore para guardar nuestros datos como metadata junto con la 
entrada del Diario:

http://wiki.sugarlabs.org/go/Development_Team/Almanac/sugar.datastore.datastore

La segunda es usando el directorio $SUGAR_ACTIVITY_ROOT/data/. Éste directorio 
se preserva a través de ejecuciones. Si bien el número de usuario es nuevo en 
cada ejecución, el grupo es único para cada actividad. Por lo tanto si 
guardamos los datos en ese directorio con permisos de lectura/escritura de 
grupo, todas las futuras instances de nuestra actividad tendrán acceso a él.

En Python the puedes referir a $SUGAR_ACTIVITY_ROOT usando el módulo os:

import os
os.environ['SUGAR_ACTIVITY_ROOT']

Saludos!

> Otra posibilidad sería usar el datastore, es decir escribir archivos
> en el Diario, lo cual sería más adecuado para los principios de la
> interfaz Sugar si lo que se quiere guardar es el estado de una
> actividad.
>
> ¿Podrías contarnos más sobre la actividad que estás desarrollando?
>
> Saludos,
>
> Gabriel
>
>
> El 17 de agosto de 2009 20:10,
>
> amviera en adinet.com.uy<amviera en adinet.com.uy> escribió:
> > Hola estimados compañeros y colaboradores de las XO
> >
> > Mi nombre es Mauricio Viera. Estoy desarrollando una actividad para
> > trabajar en las XO, la cual la estoy desarrollando en python. La estoy
> > programando en la propia computadora XO.
> >
> > En una parte de la actividad necesito guardar cierta información en
> > formato texto en algún directorio al que pueda tener acceso. No comprendo
> > por qué puedo tener acceso de escritura desde la consola en /home/olpc...
> > y sin embargo no me lo permite desde python. Sin embargo, en modo de
> > programación me permite guardar datos en
> > /home/olpc/isolation/1/uid_to_home_dir/10000/data
> >
> > Es el único directorio que encontré donde me permite escribir datos en
> > formato de texto sin problema con la orden:
> >
> > nombre_archivo.write
> > nombre_archivo.close
> >
> > Incluso los puedo leer luego tanto desde python como desde la consola con
> > el comando less.
> >
> > Quizá existan otros directorios donde también pueda hacerlo.
> >
> > Sin embargo, y es aquí dónde necesito de su ayuda, al crear la aplicación
> > .XO como para ser instalada en el SUGAR ya no me permite escribir. Me da
> > un error diciendo que no tengo permiso para escribir allí.
> >
> > ¿Qué directorio puedo utilizar? Ni siquiera me permite escribir dentro de
> > /home/olpc/Activities/MI_ACTIVIDAD.activity que es donde se va a
> > instalar.
> >
> > Espero contar con su ayuda.
> >
> > Desde ya muchas gracias.
> >
> > Mauricio Viera.
> >
> > _______________________________________________
> > Olpc-uruguay mailing list
> > Olpc-uruguay en lists.laptop.org
> > http://lists.laptop.org/listinfo/olpc-uruguay
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay

-- 
  -Andrés


More information about the Olpc-uruguay mailing list