Provided by:
manpages-es_1.55-8_all 
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).