Provided by: manpages-es_1.55-10_all bug

NOMBRE

       chown, fchown, lchown - cambian el propietario de un fichero

SINOPSIS

       #include <sys/types.h>
       #include <unistd.h>

       int chown(const char *path, uid_t owner, gid_t group);
       int fchown(int fd, uid_t owner, gid_t group);
       int lchown(const char *path, uid_t owner, gid_t group);

DESCRIPCIÓN

       Cambia  el  propietario del fichero especificado por path o 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 owner o 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 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
       chown.

VALOR DEVUELTO

       En  caso  de  éxito, devuelve 0. Si se encuentra algún error, devuelve -1, y a errno se le
       asigna un valor apropiado.

ERRORES

       Dependiendo del sistema de ficheros, se pueden generar otros  errores.   Los  errores  más
       generales para chown son:

       EPERM  El  UID  efectivo  no  coincide  con el propietario del fichero, y no es cero; o el
              propietario (owner) o grupo (group) han sido especificados incorrectamente.

       EROFS  El fichero en cuestión reside en un sistema de ficheros de sólo lectura.

       EFAULT path apunta fuera de su espacio de direcciones accesible.

       ENAMETOOLONG
              path es demasiado largo.

       ENOENT El fichero no existe.

       ENOMEM No había suficiente memoria disponible en el núcleo.

       ENOTDIR
              Un componente del camino path no es un directorio.

       EACCES Permiso de busqueda denegado en un componente del camino (path).

       ELOOP  Se encontraron demasiados enlaces simbólicos al resolver path.

       Los errores comunes para fchown se listan a continuación:

       EBADF  El descriptor no es válido.

       ENOENT Lea nota anterior.

       EPERM  Lea nota anterior.

       EROFS  Lea nota anterior.

       EIO    Ocurrió un error de E/S de bajo nivel mientras se modificaba el nodo-i.

OBSERVACIONES

       En las versiones de Linux anteriores a la 2.1.81 (y distintas  de  la  2.1.46),  chown  no
       seguía  los  enlaces simbólicos.  Desde la versión 2.1.81 de Linux chown sigue los enlaces
       simbólicos y existe una nueva llamada  al  sistema,  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 chown) tiene el mismo  número  de  llamada  al  sistema  y  chown
       obtiene el número recién introducido.

       El    prototipo    para    fchown    sólo    está    disponible    si   se   ha   definido
       _BSD_SOURCE(bienexplícitamente,oexplícitamente,alnodefinir _POSIX_SOURCE o compilando  con
       la opción -ansi).

CONFORME A

       La  llamada 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.

       La  llamada  fchown es conforme a 4.4BSD y SVr4.  SVr4 documenta además las condiciones de
       error EINVAL, EIO, EINTR y ENOLINK.

RESTRICCIONES

       La semántica de chown() 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  chown()  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.

VÉASE TAMBIÉN

       chmod(2), flock(2).