chmod


SYNOPSIS
       #include <sys/stat.h>

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

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       fchmod():
           _BSD_SOURCE || _XOPEN_SOURCE >= 500 ||
           _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
           || /* Since glibc 2.12: */ _POSIX_C_SOURCE >= 200809L

DESCRIPTION
       These system calls change the permissions of a file.  They differ  only
       in how the file is specified:

       * chmod()  changes the permissions of the file specified whose pathname
         is given in path, which is dereferenced if it is a symbolic link.

       * fchmod() changes the permissions of the file referred to by the  open
         file descriptor fd.

       The  new  file  permissions  are specified in mode, which is a bit mask
       created by ORing together zero or more of the following:

       S_ISUID  (04000)  set-user-ID  (set  process  effective  user   ID   on
                         execve(2))

       S_ISGID  (02000)  set-group-ID  (set  process  effective  group  ID  on
                         execve(2);  mandatory  locking,   as   described   in
                         fcntl(2);  take a new file's group from parent direc-
                         tory, as described in chown(2) and mkdir(2))

       S_ISVTX  (01000)  sticky bit (restricted deletion flag, as described in
                         unlink(2))

       S_IRUSR  (00400)  read by owner

       S_IWUSR  (00200)  write by owner

       S_IXUSR  (00100)  execute/search  by owner ("search" applies for direc-
                         tories, and means that entries within  the  directory
                         can be accessed)

       S_IRGRP  (00040)  read by group

       S_IWGRP  (00020)  write by group

       S_IXGRP  (00010)  execute/search by group

       S_IROTH  (00004)  read by others

       error to be returned.

       As a security measure, depending on the filesystem, the set-user-ID and
       set-group-ID execution bits may be turned off if  a  file  is  written.
       (On  Linux  this  occurs  if  the  writing  process  does  not have the
       CAP_FSETID capability.)  On some filesystems, only  the  superuser  can
       set  the  sticky bit, which may have a special meaning.  For the sticky
       bit, and for set-user-ID and  set-group-ID  bits  on  directories,  see
       stat(2).

       On NFS filesystems, restricting the permissions will immediately influ-
       ence already open files, because the access  control  is  done  on  the
       server, but open files are maintained by the client.  Widening the per-
       missions may be delayed for  other  clients  if  attribute  caching  is
       enabled on them.

RETURN VALUE
       On  success,  zero is returned.  On error, -1 is returned, and errno is
       set appropriately.

ERRORS
       Depending on the filesystem, other errors can be  returned.   The  more
       general errors for chmod() are listed below:

       EACCES Search  permission  is denied on a component of the path prefix.
              (See also path_resolution(7).)

       EFAULT path points outside your accessible address space.

       EIO    An I/O error occurred.

       ELOOP  Too many symbolic links were encountered in resolving path.

       ENAMETOOLONG
              path is too long.

       ENOENT The file does not exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR
              A component of the path prefix is not a directory.

       EPERM  The effective UID does not match the owner of the file, and  the
              process   is  not  privileged  (Linux:  it  does  not  have  the
              CAP_FOWNER capability).

       EROFS  The named file resides on a read-only filesystem.

       The general errors for fchmod() are listed below:

       EBADF  The file descriptor fd is not valid.

       EIO    See above.
       This page is part of release 3.54 of the Linux  man-pages  project.   A
       description  of  the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.



Linux                             2010-09-26                          CHMOD(2)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2017 Hurricane Electric. All Rights Reserved.