Contenido   Archivos   Índice   Bugs   Ejemplos  

Referencia del Archivo fs_acl.h

Definiciones, estructuras y prototipos de funciones que manejan las ACL de los inodos del VFS. Más...

#include <linux/types.h>

Estructuras de datos privadas (ocultas)

struct  acl_entry
 Entrada de la ACL a nivel VFS. Se utiliza dentro del la estructura vfs_acl. Más...

struct  vfs_acl
 ACL a nivel VFS. Se utiliza dentro del inodo del VFS. Más...


Constantes (públicas) de vfs_acl

Debe considerarse que el nombre de la constante es público y su valor privado.

#define ACL_OK   0
 Retorno de funciones que manejan las ACL.


Constantes (públicas) de acl_entry

Debe considerarse que el nombre de la constante es público y su valor privado.

#define ACL_NULL_BITS   0
 Para representar el modo nulo (ningun permiso) en la ACL.

#define ACL_EXEC_BIT   1
 Para representar el permiso de ejecutabilidad en la ACL.

#define ACL_WRITE_BIT   2
 Para representar el permiso de escritura en la ACL.

#define ACL_READ_BIT   4
 Para representar el permiso de lectura en la ACL.

#define ACL_OWNER_BIT   8
 Para representar el permiso de propiedad (dueño) en la ACL.

#define ACL_RWXO_BIT   ACL_EXEC_BIT|ACL_READ_BIT|ACL_WRITE_BIT|ACL_OWNER_BIT
 Para representar el modo que tiene todos los permisos y también es dueño.

#define ACL_GRP   0
 Para indicar que se trata de los permisos de un grupo en una entrada de la ACL.

#define ACL_USR   1
 Para indicar que se trata de los permisos de un usuario en una entrada de la ACL.


Funciones de la interfaz de acl_entry

#define ACL_TYPE(e)   e.type
 Devuelve el campo type de una entrada de ACL.

#define ACL_MODE(e)   e.mode
 Devuelve el campo mode de una entrada ACL.

#define ACL_ID(e)   ((ACL_TYPE(e)==ACL_USR)?e.id.uid:e.id.gid)
 Devuelve el el campo id de una entrada ACL.


Iterador para las acl_entry de un objeto vfs_acl

También forma parte de la interfaz de vfs_acl.

Ver acl_for_each para un ejemplo.

#define ACL_IT_ERROR   -1
 Retorno de las funciones que iteran sobre la ACL de un inodo.

#define acl_for_each(acl, i)   for(i=acl_first(acl);i!=ACL_IT_ERROR;i=acl_next(acl,i))
 Macro que itera entre todas las entradas válidas de una ACL.


Definiciones

#define MAX_ACL_LEN   8
 Cantidad máxima de entradas posibles a la ACL de un inodo del VFS.

#define ALLGRP   666
 Identificación del grupo AllGrp.

#define ROOTID   0
 Identificación del usuario Root.

#define ROOTGRP   0
 Identificación del grupo Root.


Tipos definidos

typedef int acl_iterator
 Renombre del tipo int, utilizado como iterador dentro de una ACL.


Funciones

void acl_aclinit (struct vfs_acl *vfs_acl)
 Inicializa una ACL.

void acl_acldestroy (struct vfs_acl *vfs_acl)
 Aun no está implementada, pero debería liberar la ACL que recibe como parámetro.

int acl_setmode (struct vfs_acl *vfs_acl, int id, int mode, int type)
 Establece el modo de un usuario o grupo en la ACL.

int acl_getsize (struct vfs_acl *vfs_acl)
 Devuelve la cantidad de entradas válidas que existen en la ACL.

int acl_getmode (struct vfs_acl *vfs_acl, int id, int type)
 Obtiene el modo de un usuario/grupo.

int xmode_to_acl (int xmode, int owner)
 Calcula los permisos compatibles con el modo.

umode_t acl_calc_xmode (struct vfs_acl *vfs_acl, uid_t uid, gid_t gid)
 Calcula el modo tradicional de un inodo a partir de su ACL.

acl_iterator acl_first (struct vfs_acl *vfs_acl)
 Busca la primer entrada válida dentro de la ACL.

acl_iterator acl_next (struct vfs_acl *vfs_acl, acl_iterator it)
 Busca la próxima entrada válida en la ACL a partir de una posición que se pasa como parámetro.

acl_entry acl_getentry (struct vfs_acl *vfs_acl, acl_iterator it)
 Devuelve una entrada de la ACL.


Descripción detallada

Definiciones, estructuras y prototipos de funciones que manejan las ACL de los inodos del VFS.


Documentación de las funciones

void acl_aclinit struct vfs_acl   vfs_acl
 

Inicializa una ACL.

Parámetros:
vfs_acl Es la ACL a inicializar, se establece un valor nulo para los modos de las entradas de vfs_acl y se asigna 0 en size::vfs_acl.

int acl_setmode struct vfs_acl   vfs_acl,
int    id,
int    mode,
int    type
 

Establece el modo de un usuario o grupo en la ACL.

En caso de que el usuario/grupo exista en la ACL, cambia su modo siempre que el modo pasado como parámetro sea un modo válido. Si no existe tal usuario/grupo y hay lugar en la ACL, lo agrega.

Parámetros:
vfs_acl ACL sobre la que se realizará la operación.
id Identificación del usuario o grupo que se busca dentro de la ACL.
mode Nuevo modo que deberá quedar cargado en la ACL para el usuario/grupo con identificacion id luego de realizar la operación, siempre que esto sea posible.
type Indica si id representa la identificación de un usuario o de un grupo.
Devuelve:
  • ACL_OK En caso de que el usuario o grupo ya exista en vfs_acl y mode sea un modo válido.
  • ACL_OK En caso de que el usuario o grupo no se encuentre en vfs_acl pero que exista un lugar vacío y mode sea un modo válido.
  • ACL_OK En caso de que el usuario o grupo no se encuentre en vfs_acl pero que el modo sea el modo nulo.
  • ENOMEM En caso de que el usuario o grupo no se encuentre en vfs_acl y esta esté llena.

int acl_getsize struct vfs_acl   vfs_acl [inline]
 

Devuelve la cantidad de entradas válidas que existen en la ACL.

Parámetros:
vfs_acl ACL de la cual se obtiene la cantidad de entradas válidas almacenadas.
Devuelve:
La cantidad de entradas válidas dentro de la ACL.

int acl_getmode struct vfs_acl   vfs_acl,
int    id,
int    type
 

Obtiene el modo de un usuario/grupo.

Parámetros:
vfs_acl ACL sobre la cual se realizará la operación.
id Identifiación del usuario del cual se desea obtener su modo.
type Indica si id se refiere a la identificación de un grupo o de un usuario.
Devuelve:
  • El modo del usuario/grupo con identificación id en la ACL vfs_acl.

int xmode_to_acl int    xmode,
int    owner
 

Calcula los permisos compatibles con el modo.

Calcula los permisos compatibles con el modo utilizado en una ACL, a partir de un modo tradicional y de un entero que indica si son permisos de dueño o no.

Parámetros:
xmode Modo tradicional.
owner Los permisos que se calculan corresponden a un dueño o no.
Devuelve:
El modo en formato ACL.

umode_t acl_calc_xmode struct vfs_acl   vfs_acl,
uid_t    uid,
gid_t    gid
 

Calcula el modo tradicional de un inodo a partir de su ACL.

Parámetros:
vfs_acl ACL sobre la cual se calculará el modo tradicional.
uid Identificación del usuario dueño tradicional del inodo.
gid Identificación del grupo dueño tradicional del inodo.
Devuelve:
Un modo que se calcula a partir los permisos que tienen:
  • el usuario dueno tradicional,
  • el grupo tradicional y AllGrup;
dentro de vfs_acl.

acl_iterator acl_first struct vfs_acl   vfs_acl
 

Busca la primer entrada válida dentro de la ACL.

Parámetros:
vfs_acl ACL donde se realizará la búsqueda.
Devuelve:
  • La posición dentro de vfs_acl donde se encontró la primer entrada válida.
  • ACL_IT_ERROR En caso de que vfs_acl este vacia.

acl_iterator acl_next struct vfs_acl   vfs_acl,
acl_iterator    it
 

Busca la próxima entrada válida en la ACL a partir de una posición que se pasa como parámetro.

Parámetros:
vfs_acl ACL donde se realizará la búsqueda.
it Posición a partir de la cual se realizará la búsqueda, previamente obtenido con acl_first() o acl_next().
Devuelve:
  • La posición dentro de vfs_acl donde se encontró la práxima entrada válida.
  • ACL_IT_ERROR En caso de que it sea la posición de la última entrada válida dentro de vfs_acl.

struct acl_entry acl_getentry struct vfs_acl   vfs_acl,
acl_iterator    it
 

Devuelve una entrada de la ACL.

Parámetros:
vfs_acl ACL a la que pertenece la entrada que se devuelve.
it Posición, dentro de vfs_acl, de la entrada que se quiere obtener.
Devuelve:
La entrada ubicada en la posición it de vfs_acl.


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