.\" Hey Emacs! This file is -*- nroff -*- source. .\" .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" Copyright (c) 1998 Andries Brouwer (aeb@cwi.nl) .\" .\" 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. .\" .\" Modified by Michael Haardt .\" Modified Wed Jul 21 21:53:01 1993 by Rik Faith (faith@cs.unc.edu) .\" Translated 18 Dec 1995 Miguel A. Sepulveda (miguel@typhoon.harvard.edu) .\" Modified 1 Jul 1996 Miguel A. Sepulveda (angel@vivaldi.princeton.edu) .\" Modified Tue Jul 9 13:59:51 1996 by Andries Brouwer .\" Modified Wed Nov 6 03:49:07 1996 by Eric S. Raymond .\" Modified Sun May 18 10:34:09 1997 by Michael Haardt .\" Translation revised 21 April 1998 by Juan Piernas .\" Translation revised 17 August 1998 by Juan Piernas .\" Revisado por Miguel Pérez Ibars el 29-septiembre-2004 .\" .TH CHOWN 2 "18 mayo 1997" "Linux 2.1.81" "Manual del Programador de Linux" .SH NOMBRE chown, fchown, lchown \- cambian el propietario de un fichero .SH SINOPSIS .B #include .br .B #include .sp .BI "int chown(const char *" path ", uid_t " owner ", gid_t " group ); .br .BI "int fchown(int " fd ", uid_t " owner ", gid_t " group ); .br .BI "int lchown(const char *" path ", uid_t " owner ", gid_t " group ); .SH DESCRIPCIÓN Cambia el propietario del fichero especificado por .I path o .IR fd . Solamente el superusuario puede cambiar el propietario de un fichero. El propietario de un fichero puede cambiar el grupo de dicho fichero a cualquier grupo al que dicho usuario pertenezca. El superusuario puede cambiar el grupo arbitrariamente. Si a .I owner o .I group se asigna \-1, entonces dicho ID no se altera. Cuando un no superusuario cambia el propietario o grupo de un fichero ejecutable, se limpian los bits de modo S_ISUID y S_ISGID. POSIX no especifica si esto también debe ocurrir cuando el superusuario realiza un .IR chown ; el comportamiento de Linux depende de la versión del núcleo. En el caso de un fichero no ejecutable para el grupo (con el bit S_IXGRP limpio) el bit S_ISGID indica un bloqueo obligatorio y no se limpia al ejecutar .IR chown . .SH "VALOR DEVUELTO" En caso de éxito, devuelve 0. Si se encuentra algún error, devuelve \-1, y a .I errno se le asigna un valor apropiado. .SH ERRORES Dependiendo del sistema de ficheros, se pueden generar otros errores. Los errores más generales para .B chown son: .TP .B EPERM El UID efectivo no coincide con el propietario del fichero, y no es cero; o el propietario .I (owner) o grupo .I (group) han sido especificados incorrectamente. .TP .B EROFS El fichero en cuestión reside en un sistema de ficheros de sólo lectura. .TP .B EFAULT .I path apunta fuera de su espacio de direcciones accesible. .TP .B ENAMETOOLONG .I path es demasiado largo. .TP .B ENOENT El fichero no existe. .TP .B ENOMEM No había suficiente memoria disponible en el núcleo. .TP .B ENOTDIR Un componente del camino .I path no es un directorio. .TP .B EACCES Permiso de busqueda denegado en un componente del camino (path). .TP .B ELOOP Se encontraron demasiados enlaces simbólicos al resolver .IR path . .PP Los errores comunes para .B fchown se listan a continuación: .TP .B EBADF El descriptor no es válido. .TP .B ENOENT Lea nota anterior. .TP .B EPERM Lea nota anterior. .TP .B EROFS Lea nota anterior. .TP .B EIO Ocurrió un error de E/S de bajo nivel mientras se modificaba el nodo\-i. .SH OBSERVACIONES En las versiones de Linux anteriores a la 2.1.81 (y distintas de la 2.1.46), .B chown no seguía los enlaces simbólicos. Desde la versión 2.1.81 de Linux .B chown sigue los enlaces simbólicos y existe una nueva llamada al sistema, .BR lchown , que no sigue los enlaces simbólicos. Desde la versión 2.1.86 de Linux, esta nueva llamada (que tiene la misma semántica que la antigua .BR chown ) tiene el mismo número de llamada al sistema y .B chown obtiene el número recién introducido. .LP El prototipo para .B fchown sólo está disponible si se ha definido .BR _BSD_SOURCE (bien explícitamente, o explícitamente, al no definir _POSIX_SOURCE o compilando con la opción -ansi). .SH "CONFORME A" La llamada .B chown es conforme a SVr4, SVID, POSIX y X/OPEN. La versión de esta llamada en 4.4BSD sólo puede ser usada por el superusuario (es decir, los usuarios ordinarios no pueden dar ficheros a otros usuarios). SVr4 documenta otras condiciones de error como EINVAL, EINTR, ENOLINK y EMULTIHOP, pero no ENOMEM. POSIX.1 no documenta las codiciones de error ENOMEM ni ELOOP. .PP La llamada .B fchown es conforme a 4.4BSD y SVr4. SVr4 documenta además las condiciones de error EINVAL, EIO, EINTR y ENOLINK. .SH RESTRICCIONES La semántica de \fBchown\fP() es violada deliberadamente en los sistemas de ficheros NFS que han habilitado la asociación del UID. Además, se viola la semántica de todas las llamadas al sistema que acceden a los contenidos de los ficheros ya que \fBchown\fP() pueden producir la revocación de acceso inmediata sobre ficheros ya abiertos. La ocultación (caching) en los clientes puede producir retrasos entre el instante en que la propiedad ha sido cambiada para permitir el acceso de un usuario y el instante en que el fichero puede realmente ser accedido por el usuario en otros clientes. .SH "VÉASE TAMBIÉN" .BR chmod (2), .BR flock (2).