Estructuras de datos privadas (ocultas) | |
struct | sc |
SC a nivel VFS. Se utiliza dentro del inodo del VFS. Más... | |
Constantes (públicas) de sc | |
Debe considerarse que el nombre de la constante es público y su valor privado. | |
#define | SC_CAT_FULL -1 |
Retorno de funciones que manejan las SC. | |
#define | SC_OK 0 |
Retorno de funciones que manejan las SC. | |
#define | SCADMIN 65535 |
Categoría que deben tener los administradores de seguridad para cambiar clases de acceso de sujetos y objetos. | |
Iterador para las categorías de un objeto sc | |
También forma parte de la interfaz de sc.
Ver sc_for_each_cat para un ejemplo que muestra cómo usarlo. | |
#define | SC_IT_ERROR -1 |
Retorno de las funciones que iteran sobre las categorías de una SC de un inodo. | |
#define | sc_for_each_cat(sc, i) for(i=sc_cat_first(sc);i!=SC_IT_ERROR;i=sc_cat_next(sc,i)) |
Macro que itera entre todas las categorías de una SC. | |
sc_cat_iterator | sc_cat_first (struct sc *sc) |
Obtiene un iterador o selector que corresponde a la primer categoría válida dentro de las categorías de una SC. | |
sc_cat_iterator | sc_cat_next (struct sc *sc, sc_cat_iterator it) |
Obtiene el iterador correspondiente a la próxima categoría válida dentro de una SC con respecto a una posición de referencia pasada como parámetro. | |
int | sc_getcat (struct sc *sc, sc_cat_iterator it) |
Obtiene la categoría referenciada por un iterador. | |
Funciones de la interfaz de sc | |
void | sc_destroy (struct sc *sc) |
Libera los recursos asignados a una SC. | |
int | sc_getsize (struct sc *sc) |
Obtiene la cantidad de categorías válidas dentro de una SC. | |
int | sc_getlevel (struct sc *sc) |
Obtiene el nivel de una SC. | |
void | sc_setlevel (struct sc *sc, unsigned int l) |
Establece el nivel de una SC. | |
void | sc_clearcat (struct sc *sc) |
Borra todas las categorías de una SC. | |
int | sc_addcat (struct sc *sc, int cat) |
Agrega una categoría las categorías de una SC. | |
int | sc_compare (struct sc *sc1, struct sc *sc2) |
Determina si sc2 domina a sc1. | |
int | sc_copy (struct sc *sc1, struct sc *sc2) |
Copia el contenido de una clase de seguridad en otra. | |
int | sc_usergetncat (struct sc *sc, int *cat, int n) |
Carga un conjunto de categorías que provienen del espacio de usuario a una SC. | |
int | sc_userputcat (struct sc *sc, int *cat) |
Carga un conjunto de categorías que provienen de una SC en espacio de kernel a un conjunto de categorías que se encuentra en espacio de usuario. | |
Tipos definidos | |
typedef int | sc_cat_iterator |
Renombre del tipo int, utilizado como iterador dentro de las categorías de una SC. | |
Funciones | |
sc * | sc_init (void) |
Inicializa una SC. |
Este TAD oculta la representación de las clases de acceso (o de seguridad) a nivel de VFS, así como los algoritmos que se usan para establecer y obtener los atributos privados.
La estructura oculta sc no debe ser accedida 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.
|
Retorno de funciones que manejan las SC. Indica que la operación no pudo realizarse porque la SC del inodo está llena. |
|
Retorno de funciones que manejan las SC. Indica que la operación se realizó con éxito. |
|
Retorno de las funciones que iteran sobre las categorías de una SC de un inodo. Indica que no existen más entradas válidas en la ACL a partir de la posición pasada como parámetro. |
|
Macro que itera entre todas las categorías de una SC.
|
|
Inicializa una SC. Se debe tener en cuenta lo siguiente:
|
|
Obtiene un iterador o selector que corresponde a la primer categoría válida dentro de las categorías de una SC.
|
|
Obtiene el iterador correspondiente a la próxima categoría válida dentro de una SC con respecto a una posición de referencia pasada como parámetro.
|
|
Obtiene la categoría referenciada por un iterador. La SC debe ser válida y el iterador debe ser uno obtenido utilizando sc_cat_first() y sc_cat_next() sobre la misma SC y distinto de SC_IT_ERROR.
|
|
Libera los recursos asignados a una SC. Destruye memoria del núcleo utilizada en una SC.
|
|
Obtiene la cantidad de categorías válidas dentro de una SC.
|
|
Obtiene el nivel de una SC. El parámetro sc debe estar inicializado.
|
|
Establece el nivel de una SC. El parametro sc debe estar inicializado.
|
|
Borra todas las categorías de una SC.
|
|
Agrega una categoría las categorías de una SC.
|
|
Determina si sc2 domina a sc1.
|
|
Copia el contenido de una clase de seguridad en otra.
|
|
Carga un conjunto de categorías que provienen del espacio de usuario a una SC.
|
|
Carga un conjunto de categorías que provienen de una SC en espacio de kernel a un conjunto de categorías que se encuentra en espacio de usuario. No se realiza ningún control para asegurar que la cantidad de categorías en la SC de espacio de kernel es menor o igual a la cantidad de espacio reservado en espacio de usuario para almacenarlas.
|