CHMOD(2)

NOMBRE
chmod, fchmod - cambia los permisos de un fichero

SINOPSIS
#include <sys/types.h>
#include <sys/stat.h>

int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);

DESCRIPCIÓN
Cambia el modo del fichero dado mediante path o referido por fildes Los modos están especificados según las siguientes definiciones:

    S_ISUID
        04000 asignar usuario ID en ejecución

    S_ISGID
        02000 asignar group ID en ejecución

    S_ISVTX
        01000 bit pegajoso (sticky bit)

    S_IRUSR (S_IREAD)
        00400 lectura por el propietario

    S_IWUSR (S_IWRITE)
        00200 escritura por el propietario

    S_IXUSR (S_IEXEC)
        00100 ejecución/busqueda por el propietario

    S_IRGRP
        00040 lectura por el grupo

    S_IWGRP
        00020 escritura por el grupo

    S_IXGRP
        00010 ejecución/busqueda por el grupo

    S_IROTH
        00004 lectura por otros

    S_IWOTH
        00002 escritura por otros

    S_IXOTH
        00001 ejecución/busqueda por otros

El UID efectivo del proceso debe ser cero o debe coincidir con el propietario del fichero. El UID o GIU efectivo debe ser apropiado para asignar los bits de ejecución. Dependiendo del sistema de ficheros, la asignación de los bits de ejecución del ID usuario y ID grupo podrían desactivarse si el fichero es escrito. En algunos sistemas de ficheros, solo el superusuario puede asignar el bit pegajoso, lo cual puede tener un significado especial (i.e., para directorios, un fichero solo puede ser borrado por el propietario o el superusuario).

VALOR REGRESADO
Zero regresa en caso de éxito. En caso de error, -1, y la variable errno es asignada apropiadamente.

ERRORES
Según el sistema de ficheros, otros errores puede regresar. Los más generales para chmod están listados a continuación:

EPERM
    El UID efectivo no coincide con el propietario del fichero, o no es cero.

EROFS
    El fichero nombrado reside en una zona del sistema de ficheros sólo para lectura.

EFAULT
    path indica fuera del espacio de direcciones accesible.

ENAMETOOLONG
    path es demasiado largo.

ENOENT
    El fichero no existe.

ENOMEM
    No hubo suficiente memoria en el kernel.

ENOTDIR
    Un componente del camino (path) no es un directorio.

EACCES
    Autorización de inspección en uno de los componentes del camino ha sido denegada.

ELOOP
    path contiene una referencia circular (por ejemplo, mediante una ligadura simbólica).

Los errores comunes para fchmod son:

EBADF
    Descriptor inválido.

ENOENT
    Lea nota anterior.

EPERM
    Lea nota anterior.

EROFS
    Lea nota anterior.

VÉASE
open(2), chown(2), stat(2)