Contenido   Archivos   Índice   Bugs   Ejemplos  

TAD subjectsc
[TADs y estructuras modificadas o agregadas]

subjectsc representa las clases de acceso de los usuarios (sujetos). Más...

Funciones de la interfaz de subjectsc

int __init subjectsc_init (void)
 Inicializa las SC de todos los sujetos.

int __exit subjectsc_exit (void)
 Libera las SC de todos los sujetos.

scsubjectscget (uid_t uid)
 Obtiene la SC de un usuario.

int subjectscadd (uid_t uid, sc *sc)
 Agrega una categoría a la SC de un usuario.

scsubjectscdel (uid_t uid)
 Elimina una categoría de la SC de un usuario.


Estructuras de datos privadas (ocultas)

scsubjectsc [SC_MAX_BUCKETS]
 Aquí se almacenan las SC de los sujetos.

sclowest_sc
 Apunta a la SC más baja.


Descripción detallada

subjectsc representa las clases de acceso de los usuarios (sujetos).

El diseño de este TAD no está completo y muchas de sus funciones son sólo prototipos; futuras versiones de Lisex completarán el diseño y re-implementarán las funciones. Notar que la interfaz del TAD es muy poco probable que se modifique por lo que puede programarse sobre este sin demasiado riesgo.

Se pretende ocultar la representación de las clases de seguridad de los usuarios, así como los algoritmos que se usan para establecer y obtener los atributos privados. En principio se construye sobre el TAD sc.

Se considera que los usuarios son aquellos que tienen UID menor que SC_MAX_BUCKETS. Esto se debe a que Lisex 0.0 es un prototipo; en futuras versiones se inicializará la clase de acceso de cada usuario presente en el sistema (i.e. en /etc/passwd). Por lo tanto, el administrador debe crear cuentas de usuario con UID menor que SC_MAX_BUCKETS pues de lo contrario no tendrán clase de acceso lo que producirá un comportamiento errático del sistema.

Las estructuras ocultas subjectsc y lowest_sc no deben ser accedidas excepto por las funciones de la interfaz aquí documentada. Como esto no es posible imponerlo en tiempo de compilación, los programadores son los responsables de mantener esta disciplina. En caso de que no existan las funciones apropiadas para acceder los atributos privados, los programadores son libres de hacerlo como lo crean conveniente.


Documentación de las funciones

int __init subjectsc_init void   
 

Inicializa las SC de todos los sujetos.

Se considera que los usuarios son aquellos que tienen UID menor que SC_MAX_BUCKETS. Esto se debe a que Lisex 0.0 es un prototipo; en futuras versiones se inicializará la clase de acceso de cada usuario presente en el sistema (i.e. en /etc/passwd).

sc* subjectscget uid_t    uid
 

Obtiene la SC de un usuario.

Se considera que los usuarios son aquellos que tienen UID menor que SC_MAX_BUCKETS. Esto se debe a que Lisex 0.0 es un prototipo; en futuras versiones se inicializará la clase de acceso de cada usuario presente en el sistema (i.e. en /etc/passwd).

Parámetros:
uid Identificación del usuario sobre el que se quiere realizar la operación.
Devuelve:
La SC del usuario con identificación uid.

Bug:
Debería buscar dentro del bucket (una lista enlazada?)

int subjectscadd uid_t    uid,
sc   sc
 

Agrega una categoría a la SC de un usuario.

Devuelve:
  • -EPERM si uid no es un usuario registrado (ver subjectsc_init()).
  • 0 si la operación se realizó con éxito.


Documentación de las variables

sc* subjectsc[SC_MAX_BUCKETS] [static]
 

Aquí se almacenan las SC de los sujetos.

Esta estructura debe ser accedida sólo a través de las funciones de su interfaz.

Ver SC_MAX_BUCKETS.

sc* lowest_sc [static]
 

Apunta a la SC más baja.

Usado por todos los sujetos que no tengan SC asignada. Una vez que se inicializa subjectsc (subjectsc_init()) todas sus componentes apuntan a lowest_sc, de forma tal que cada nuevo usuario tendrá lowest_sc como clase de acceso hasta tanto se le asigne una.


Generado el Fri Jan 10 09:11:43 2003 para Lisex por doxygen1.3-rc2