Contenido   Archivos   Índice   Bugs   Ejemplos  

Nuevas llamadas al sistema
[Todas las llamadas al sistema involucradas en Lisex 0.0]


Funciones

asmlinkage long sys_acladd (char *filename, int id, int mode, int type)
 Llamada al sistema acladd. Agrega permisos a un usuario o grupo en la ACL.

asmlinkage long sys_acldel (char *filename, int id, int mode, int type)
 Llamada al sistema acldel. Quita permisos a un usuario o un grupo de una ACL.

asmlinkage long sys_ownerclose (int pid, char *filename)
 Llamada al sistema ownerclose. Permite que un dueño cierre uno de sus archivos que ha sido abierto por otro usuario.

asmlinkage long sys_oscstat (char *filename, int *level, int *categories, int size)
 Llamada al sistema oscstat. Retorna la clase de acceso de un archivo.

asmlinkage long sys_chobjsc (char *filename, int level, int *categories, int size)
 Llamada al sistema chobjsc. Cambia la SC de un archivo.

asmlinkage long sys_aclstat (char *filename, struct acl_entry *acl_statbuf, int len)
 Llamada al sistema aclstat. Devuelve información almacenada en una ACL.

asmlinkage long sys_aclfstat (unsigned int fd, struct acl_entry *acl_statbuf, int len)
 Llamada al sistema aclfstat. Devuelve información de una ACL.

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.


Documentación de las funciones

asmlinkage long sys_acladd char *    filename,
int    id,
int    mode,
int    type
 

Llamada al sistema acladd. Agrega permisos a un usuario o grupo en la ACL.

Agrega permisos a un usuario o grupo en la ACL del inodo de un archivo, siempre que esto sea posible.

Parámetros:
filename Nombre del archivo sobre el cual se realizará la operacion.
id Identificación del usuario/grupo al que se le agregan permisos a la ACL del inodo del archivo filename.
mode Permisos que se le agregarán a los permisos que tenga el usuario/grupo id en la ACL del inodo del archivo filename.
type Determina si id es la identificación de un usuario o de un grupo.
Postcondición:
  • Se agrega a la ACL del archivo filename el usuario/grupo con identificación id y los permisos mode.
Devuelve:
  • Un número distinto de cero si filename no es un nombre valido.
  • -EROFS Si el archivo filename es read-only.
  • -EPERM Si el archivo filename es inmutable o append.???
  • -EACCES Si el usuario que realiza la operación no es dueño del archivo filename.
  • -EBUSY Si el archivo filename esta abierto en el sistema.
  • -ACL_OK Si la operación se realizó con éxito.
  • -ENOMEM Si la ACL del inodo del archivo filename estaba llena y el usuario/grupo id no tenía ningún permiso en la ACL de este inodo antes de realizarse la operación.

asmlinkage long sys_acldel char *    filename,
int    id,
int    mode,
int    type
 

Llamada al sistema acldel. Quita permisos a un usuario o un grupo de una ACL.

Quita permisos a un usuario o un grupo en la ACL del inodo de un archivo, siempre que esto sea posible.

Parámetros:
filename Nombre del archivo sobre el cual se realizará la operación.
id Identificación del usuario/grupo al que se le quitan permisos en la ACL del inodo del archivo filename.
mode Permisos que se le quitarán a los permisos que tenga el usuario/grupo id en la ACL del inodo del archivo filename.
type Determina si id es la identificación de un usuario o de un grupo.
Postcondición:
La ACL del archivo filename cambia por una nueva ACL donde el usuario/grupo con identificación id tiene los permisos que tenía antes menos los permisos que están en mode, el resto de la ACL queda sin cambios. Si id es el usuario dueno tradicional del archivo filename, y mode contiene el permiso de dueño, la ACL y el archivo cambian de la siguiente forma: El dueño tradicional de filename pasa a ser ROOT, se agrega a la ACL el usuario ROOT con permisos de dueño. Se quitan de la ACL los permisos del usuario id que están en mode.
Devuelve:
  • Un número distinto de cero si filename no es un nombre valido.
  • -EROFS Si el inodo del archivo filename es read-only.
  • -EPERM Si el inodo del archivo filename es inmutable o append?????
  • -EPERM Si se intenta borrar al grupo ROOTGRP del conjunto de grupos dueños de la ACL del archivo filename.
  • -EACCES Si el usuario que realiza la operación no es dueño de filename.
  • -EBUSY Si el archivo filename esta abierto en el sistema.
  • -EINVAL Si el usuario/grupo id no existía en la ACL del inodo del archivo filename antes de realizarse la operación.
  • -ENOMEM Si la operación no pudo agregar a ROOT en la ACL en el caso de que id sea el dueño tradicional de filename.
  • -ACL_OK Si la operación se realizó con éxito.

asmlinkage long sys_ownerclose int    pid,
char *    filename
 

Llamada al sistema ownerclose. Permite que un dueño cierre uno de sus archivos que ha sido abierto por otro usuario.

En Lisex las llamadas al sistema que permiten cambiar atributos de seguridad de archivos abiertos retornan siempre con error (ver por ejemplo sys_fchmod()). Por esta razón se provee esta llamada que permite que un dueño cierre uno de sus archivos cuando ha sido abierto por otro usuario. De esta forma, el dueño podrá, inmediatamente después, cambiar los atributos de seguridad de ese archivo.

Notar que el dueño debe invocar ownerclose para cada pid que tenga abierto filename, para luego poder cambiar algún atributo de seguridad.

Parámetros:
pid Proceso que tiene abierto el archivo filename
filename Archivo que se quiere cerrar
Precondición:
El usuario que invoca la llamada debe ser dueño de filename.
Postcondición:
filename no será un archivo abierto por pid.

asmlinkage long sys_oscstat char *    filename,
int *    level,
int *    categories,
int    size
 

Llamada al sistema oscstat. Retorna la clase de acceso de un archivo.

Precondición:
  • La clase de acceso del usuario que realiza la operacion domina a la clase de seguridad del archivo.
  • size debe ser el tamaño reservado en el buffer categories y debe ser al menos la cantidad de entradas válidas que hay en la clase de acceso de filename.
Parámetros:
filename Archivo que contiene la clase de seguridad que se utilizará para cargar los datos.
level Donde se cargará el nivel de la clase de acceso de filename.
categories Donde se cargarán las categorías de la clase de acceso de filename.
size Cantidad de categorías que pide cargar en categories.
Postcondición:
  • En el párametro level está el nivel de la clase de seguridad de filename.
  • En el párametro categories están las categorías de la clase de seguridad de filename.
Devuelve:
  • Un número distinto de cero si filename no es un nombre válido.
  • -EACCES Si no se cumple la precondición.
  • n Donde n es la cantidad de entradas válidas que hay en la clase de acceso de filename, si len es 0.
  • -EINVAL Si size es menor que la cantidad de entradas válidas que hay en la clase de acceso de filename.
  • m Si la operación se realizó con éxito. m es la cantidad de entradas válidas que se cargaron en categories.

asmlinkage long sys_chobjsc char *    filename,
int    level,
int *    categories,
int    size
 

Llamada al sistema chobjsc. Cambia la SC de un archivo.

Cambia la SC de un archivo, con los datos que recibe como parámetro.

Precondición:
El usuario que realiza la operacin debe ser un administrador MAC. El archivo no debe estar abierto en el sistema.
Parámetros:
filename Archivo al cual se le cambia la SC.
level Nivel que se cargará en la SC del archivo filename.
categories Conjunto de categorías que se cargarán en la SC del archivo filename.
size Cantidad de categorías que cargarán en la SC del archivo filename.
Devuelve:
  • Un número distinto de cero si filename no es un nombre válido.
  • -EROFS Si el archivo filename es read-only
  • -EPERM Si el archivo filename es inmutable o append.????
  • -EACCES Si el usuario que realiza la operación no es un administrador MAC.
  • -EBUSY Si el archivo filename está abierto en el sistema.
  • 0 Si la operación se realizó con éxito.

asmlinkage long sys_aclstat char *    filename,
struct acl_entry   acl_statbuf,
int    len
 

Llamada al sistema aclstat. Devuelve información almacenada en una ACL.

Esta llamada utiliza la función cp_aclstat().

Devuelve información almacenada en la ACL de un archivo, siempre que el usuario que pide dicha información tiene permisos de lectura sobre el archivo.

Parámetros:
filename Archivo del cual se piede la información.
acl_statbuf Apunta a una estructura donde se devuelven los resultados de aclstat.
len Cantidad de entradas de la ACL que se piden obtener como resultado.
Postcondición:
  • En el parámetro statbuf quedan cargadas todas las entradas válidas de la ACL del archivo filename.
Devuelve:
  • Un número distinto de cero si filename no es un nombre válido.
  • -EACCES Si el usuario que realiza la operación no tiene permiso de lectura sobre el archivo filename.
  • Lo que devuelva cp_aclstat() en cualquier otro caso.

asmlinkage long sys_aclfstat unsigned int    fd,
struct acl_entry   acl_statbuf,
int    len
 

Llamada al sistema aclfstat. Devuelve información de una ACL.

Devuelve información de la ACL del inodo al que apunta el descripor de archivo que se pasa como parámetro. Esta llamada utiliza la función cp_aclstat().

Parámetros:
fd Descriptor de archivo que apunta al inodo del cual se piede la información.
acl_statbuf Apunta a una estructura donde se devuelven los resultados de sys_fstat().
len Cantidad de entradas de la ACL que se piden obtener como resultado.
Postcondición:
Ídem sys_aclstat()
Devuelve:
Ídem sys_aclstat()

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