Provided by:
manpages-es_1.55-10_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'ON
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 tambien debe ocurrir cuando el superusuario realiza
un chown; el comportamiento de Linux depende de la version del nucleo.
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 exito, devuelve 0. Si se encuentra algun 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 mas 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 cuestion reside en un sistema de ficheros de solo
lectura.
EFAULT path apunta fuera de su espacio de direcciones accesible.
ENAMETOOLONG
path es demasiado largo.
ENOENT El fichero no existe.
ENOMEM No habia suficiente memoria disponible en el nucleo.
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 simbolicos al resolver path.
Los errores comunes para fchown se listan a continuacion:
EBADF El descriptor no es valido.
ENOENT Lea nota anterior.
EPERM Lea nota anterior.
EROFS Lea nota anterior.
EIO Ocurrio 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 seguia los enlaces simbolicos. Desde la version
2.1.81 de Linux chown sigue los enlaces simbolicos y existe una nueva
llamada al sistema, lchown, que no sigue los enlaces simbolicos. Desde
la version 2.1.86 de Linux, esta nueva llamada (que tiene la misma
semantica que la antigua chown) tiene el mismo numero de llamada al
sistema y chown obtiene el numero recien introducido.
El prototipo para fchown solo esta disponible si se ha definido
_BSD_SOURCE(bienexpl'icitamente,oexpl'icitamente,alnodefinir
_POSIX_SOURCE o compilando con la opcion -ansi).
CONFORME A
La llamada chown es conforme a SVr4, SVID, POSIX y X/OPEN. La version
de esta llamada en 4.4BSD solo 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 ademas
las condiciones de error EINVAL, EIO, EINTR y ENOLINK.
RESTRICCIONES
La semantica de chown() es violada deliberadamente en los sistemas de
ficheros NFS que han habilitado la asociacion del UID. Ademas, se viola
la semantica de todas las llamadas al sistema que acceden a los
contenidos de los ficheros ya que chown() pueden producir la revocacion
de acceso inmediata sobre ficheros ya abiertos. La ocultacion (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'EASE TAMBI'EN
chmod(2), flock(2).