1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
.\" Hey Emacs! This file is -*- nroff -*- source.
.\"
.\" Copyright (C) 1992 Drew Eckhardt;
.\" 1993 Michael Haardt, Ian Jackson.
.\"
.\" Se autoriza hacer y distribuir copias literales de este manual siempre
.\" que el aviso de copyright y este aviso de autorizacin se preserven en
.\" todas las copias.
.\"
.\" Se autoriza copiar y distribuir versiones modificadas de este manual
.\" bajo las condiciones para copiar literalmente, siempre que todo el trabajo
.\" resultante sea distribuido bajo los trminos de un aviso de autorizacin
.\" idntico a ste.
.\"
.\" Ya que el kernel y las bibliotecas de Linux estn cambiando
.\" constantemente, esta pgina de manual puede ser incorrecta u obsoleta.
.\" El(Los) autor(es) no asumen ninguna responsabilidad de los errores u
.\" omisiones, o de los daos resultantes del uso de la informacin contenida
.\" aqu. El(Los) autor(es) pueden no haber tomado el mismo nivel de cuidado en
.\" la produccin de este manual, que es licenciado gratuitamente, como el que
.\" podran haber tomado trabajando profesionalmente.
.\"
.\" Las versiones procesadas o tratadas de este manual que no se acompaen
.\" con los fuentes deben reconocer el copyright y los autores de este trabajo.
.\"
.\" Modificado el Mi, 21 Jul 1993, a las 19:36:29, por Rik Faith (faith@cs.unc.edu)
.\" Modificado el 21 de Ago de 1994 por Michael Chastain (mec@shell.portal.com):
.\" Se elimina nota sobre viejo kernel (pre-1.1.44) que usaba un
.\" identificador de proceso incorrecto a lo largo del camino.
.\" Modificado el 18 de Mar de 1996 por Martin Schulze (joey@infodrom.north.de):
.\" Mejor explicacin sobre cmo se comportan con los enlaces simblicos.
.\" Corregido por Nick Duffek (nsd@bbc.com), aeb, el 26 de Abril de 1996
.\" Modificado el 07 de Sep de 1996 a las 18:17:26 por Michael Haardt:
.\" Restricciones para NFS
.\" Traducido el 23 de Jul de 1997 por Juan Piernas (piernas@dif.um.es)
.\" Modificado por Joseph S. Myers <jsm28@cam.ac.uk>, 970909
.\" Modified Tue Jan 13 21:21:03 MET 1998 by Michael Haardt:>
.\" Using access is often insecure
.\" Traduccin revisada el Sb 25 de Abril de 1998 por Juan Piernas <piernas@dif.um.es>
.\" Traduccin revisada el Dom 16 de Agosto de 1998 por
.\" Juan Piernas <piernas@dif.um.es>
.\"
.TH ACCESS 2 "13 Enero 1998" "Linux" "Llamadas al sistema"
.SH NOMBRE
access \- comprueba los permisos de usuario para un fichero
.SH SINOPSIS
.nf
.B #include <unistd.h>
.sp
.BI "int access(const char *" pathname ", int " mode );
.fi
.SH DESCRIPCIN
.B access
comprueba si al proceso se le permitira leer, escribir o comprobar la
existencia del fichero (u otro objeto del sistema de ficheros) cuyo nombre
es
.IR pathname .
Si
.I pathname
es un enlace simblico se comprueban los permisos del fichero referenciado
por dicho enlace simblico.
.I mode
es una mscara compuesta por uno o ms de los siguientes elementos:
.BR R_OK ", " W_OK ", " X_OK " y " F_OK .
.BR R_OK ", " W_OK " y " X_OK
se utilizan para la comprobacin de lectura, escritura o ejecucin del
fichero, respectivamente.
.B F_OK
se utiliza para ver si se permite la mera comprobacin de la existencia del
fichero. Esto depende de los permisos de los directorios que aparecen en el
camino hasta el fichero, tal como se da en
.IR pathname ,
y de los permisos de los directorios y ficheros referenciados por los enlaces
simblicos que se pueden encontrar a lo largo del camino.
La comprobacin se realiza con los uid y gid
.I reales
del proceso, en lugar de utilizar los identificadores efectivos, tal como se
hace cuando realmente se intenta una operacin. Esto permite a los programas
con el bit
.BR SETUID
activo determinar fcilmente la autoridad del usuario
invocador.
Slo se comprueban los bits de acceso, no el tipo de fichero o sus
contenidos. Por lo tanto, si encontramos que un directorio se puede
"escribir", probablemente esto significa que se pueden crear ficheros en el
directorio, no que el directorio se pueda escribir como se hace con un
fichero. Similarmente, podemos encontrar un fichero DOS como "ejecutable"
y, an as, puede fallar una llamada a
.BR execve (2).
.SH "VALOR DEVUELTO"
Si ha habido xito (se han concedido todos los permisos solicitados) la
funcin devuelve un valor 0. Si se ha producido un error (al menos, uno de
los bits de
.I mode
ha interrogado por un permiso que ha sido denegado, o ha ocurrido algn otro
tipo de error), la funcin devuelve \-1 y a
.I errno
se le asigna un valor adecuado.
.SH ERRORES
.TP 0.8i
.B EACCES
Se denegara el acceso solicitado al fichero o se deniega el permiso de
bsqueda para uno de los directorios en
.IR pathname .
.TP
.B EROFS
Se ha solicitado permiso de escritura para un fichero en un sistema de ficheros
de slo lectura.
.TP
.B EFAULT
.IR pathname " apunta fuera del espacio de direcciones al que tiene
acceso."
.TP
.B EINVAL
.IR mode " se ha especificado incorrectamente"
.TP
.B ENAMETOOLONG
.IR pathname " es demasiado largo."
.TP
.B ENOENT
Un directorio componente de
.I pathname
es accesible pero no existe o es un enlace simblico colgado.
.TP
.B ENOTDIR
Un componente usado como directorio en
.I pathname
no es, de hecho, un directorio.
.TP
.B ENOMEM
No hay suficiente memoria disponible en el kernel.
.TP
.B ELOOP
Se han encontrado demasiados enlaces simblicos al resolver
.IR pathname .
.TP
.B EIO
Ha ocurrido un error de E/S.
.SH RESTRICCIONES
.B access
regresa un error si falla cualquiera de los tipos de acceso especificados en
la llamada a la funcin, aunque los otros tipos tuvieran xito.
.PP
.B access
no puede funcionar correctamente sobre sistemas de ficheros NFS que tengan
activa la aplicacin del UID, porque la aplicacin del UID se realiza en el
servidor y se oculta a los clientes que comprueban los permisos.
.PP
Usar
.B access
para comprobar si un usuario est autorizado a, por ejemplo, abrir un
fichero antes de que realmente lo haga usando
.BR open (2),
crea un agujero de seguridad ya que el usuario podra explotar el breve
intervalo de tiempo que hay entre la comprobacin y la apertura del fichero
para manipularlo.
.SH "CONFORME A"
SVID, AT&T, POSIX, X/OPEN, BSD 4.3
.SH "VASE TAMBIN"
.BR stat "(2), " open "(2), " chmod "(2), " chown "(2), "
.BR setuid "(2), " setgid (2).
|