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. | |
sc * | subjectscget (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. | |
sc * | subjectscdel (uid_t uid) |
Elimina una categoría de la SC de un usuario. | |
Estructuras de datos privadas (ocultas) | |
sc * | subjectsc [SC_MAX_BUCKETS] |
Aquí se almacenan las SC de los sujetos. | |
sc * | lowest_sc |
Apunta a la SC más baja. |
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.
|
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 |
|
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
|
|
Agrega una categoría a la SC de un usuario.
|
|
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. |
|
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. |