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
|
.\" Copyright (C) 1995, Thomas K. Dyas <tdyas@eden.rutgers.edu>
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date. The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein. The author(s) may not
.\" have taken the same level of care in the production of this manual,
.\" which is licensed free of charge, as they might when working
.\" professionally.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" Created 1995-08-06 Thomas K. Dyas <tdyas@eden.rutgers.edu>
.\" Modified 2000-07-01 aeb
.\" Modified 2002-07-23 aeb
.\"
.\" Traducción de Urko Lusa <ulusa@arrakis.es> el 27/01/98
.\" Translation revised Sat Jan 29 2000 by Juan Piernas <piernas@ditec.um.es>
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> el 29-septiembre-2004
.\"
.TH SETFSUID 2 "23 julio 2002" "Linux 1.3.15" "Manual del programador de Linux"
.SH NOMBRE
setfsuid \- establece la identidad del usuario que accede al sistema de
ficheros
.SH SINOPSIS
.B #include <unistd.h>
/* glibc usa <sys/fsuid.h> */
.sp
.BI "int setfsuid(uid_t " fsuid );
.SH DESCRIPCIÓN
La llamada al sistema
.B setfsuid
establece el identificador de usuario
que el núcleo de Linux usa para comprobar todos los accesos al sistema de
ficheros. Normalmente, el valor de
.I fsuid
cambiará según el valor del usuario efectivo. De hecho, cada vez que el
usuario efectivo cambie,
.I fsuid
también cambiará al nuevo valor del usuario efectivo.
Las llamadas explícitas a
.B setfsuid
y
.B setgsgid
normalmente sólo se usan en programas como el servidor NFS de Linux, que necesitan
cambiar el identificador de usuario y de grupo para acceder a un fichero, pero sin
cambiar los identificadores real y efectivo. Un cambio en el identificador
real del usuario para un programa como el servidor NFS supondría un agujero
de seguridad, al quedar expuesto a otras señales no deseadas. (véase más abajo.)
.B setfsuid
sólo tendrá éxito si quien lo invoca es el superusuario o si
.I fsuid
coincide con el identificador de usuario real, con el identificador de
usuario efectivo, con el setuid guardado o con el valor actual de
.IR fsuid .
.SH "VALOR DEVUELTO"
En caso de éxito, se devolverá el valor anterior de
.IR fsuid .
En caso de error, se devolverá el valor actual de
.IR fsuid .
.SH "CONFORME A"
.B setfsuid
es específico de Linux y no debería usarse en programas que se pretende sean
portables.
Está presente desde la versión 1.1.44 de Linux y en libc desde la versión 4.7.6.
.SH ERRORES
No se devuelve ningún mensaje de error a quien lo invoca. Al menos, debería
devolverse
.B EPERM
cuando todas las llamadas fallen.
.SH OBSERVACIONES
Cuando glibc determina que el argumento no es un ID de usuario válido,
devuelve \-1 y pone en \fIerrno\fP el valor EINVAL sin intentar
la llamada al sistema.
.LP
Observe que en la época en la que esta llamada al sistema fue introducida,
un proceso podía enviar una señal a un proceso con el mismo ID de usuario
efectivo.
Hoy el manejo de los permisos sobre señales es ligeramente diferente.
.SH "VÉASE TAMBIÉN"
.BR kill (2),
.BR setfsgid (2)
|