Contenido   Archivos   Índice   Bugs   Ejemplos  

Referencia del Archivo subjectsc.c

Definiciones de las funciones declaradas en subjectsc.h y algunas funciones auxiliares. Más...

#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/subjectsc.h>
#include <asm/uaccess.h>

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.


Definiciones

#define LISEXDEBUG(x)
 Maneja los mensajes del núcleo.

#define SC_MAX_BUCKETS   600
 Cantidad máxima de SC de sujetos.

#define SUBSC_HASH(x)   x
 Función de dispersión; por ahora un arreglo completo.


Funciones

asmlinkage long sys_chsubsc (uid_t uid, int level, int *categories, int size)
 Llamada al sistema chsubsc. Cambia la clase de acceso de un usuario.

asmlinkage long sys_sscstat (uid_t uid, int *level, int *categories, int size)
 Llamada al sistema sscstat. Retorna la clase de acceso de uid.

int logged (uid_t uid)
 Determina si un sujeto está corriendo algún proceso en el sistema.


Descripción detallada

Definiciones de las funciones declaradas en subjectsc.h y algunas funciones auxiliares.


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.

asmlinkage long sys_chsubsc uid_t    uid,
int    level,
int *    categories,
int    size
 

Llamada al sistema chsubsc. Cambia la clase de acceso de un usuario.

Precondición:
  • El usuario que invoca la llamada debe ser un oficial MAC.
  • El usuario al cual se le cambiará la clase de acceso no debe tener archivos abiertos.
Parámetros:
uid Identificación del usuario sobre el cual se realiza la operación.
level Nivel que se le asignará a la SC del usuario.
categories Conjunto de categorías que se le asignarán a la SC del usuario.
size Cantidad de categorías que se le asignarán a la SC del usuario.
Postcondición:
  • SC de uid cambia por una nueva SC con nivel level y conjunto de categorías categories.
Devuelve:
  • -EBUSY Si uid esta corriendo algún proceso en el momento de realizar la operación.
  • -EACCES Si el usuario que realiza esta operación no pertenece al grupo SecAdm.
  • 0 Si la operación se realizó con éxito.

asmlinkage long sys_sscstat uid_t    uid,
int *    level,
int *    categories,
int    size
 

Llamada al sistema sscstat. Retorna la clase de acceso de uid.

Parámetros:
uid Identificación del usuario del cual se quiere conocer la clase de seguridad.
level Donde se cargará el nivel de la clase de acceso de uid.
categories Donde se cargarán las categorías de la clase de acceso de uid.
size Cantidad de categorías que se pide cargar en categories.
Postcondición:
  • El parámetro level contiene el nivel de la clase de acceso de uid.
  • En el parámetro categories están las categorías de la clase de acceso de uid, si size es mayor que 0.
Devuelve:
  • -EACCES Si La clase de acceso del usuario que realiza la operación no domina a la de uid.
  • Cantidad de entradas válidas que hay en la clase de acceso de uid, si size es 0. En este caso se carga sólo el nivel.
  • -EINVAL Si size es menor que la cantidad de entradas válidas que hay en la clase de acceso de uid.
  • m Si la operación se realizó con éxito. m es la cantidad de entradas válidas que se cargaron en categories.


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