

CHMOD(2)                  Minix Programmer's Manual                   CHMOD(2)


NAME
     chmod - change mode of file

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

     int chmod(const char *path, mode_t mode)

DESCRIPTION
     The file whose name is given by path has its mode changed to mode.  Modes
     are  constructed  by  or'ing  together some combination of the following,
     defined in <sys/stat.h>:

          S_ISUID    04000      set user ID on execution
          S_ISGID    02000      set group ID on execution
          S_ISVTX    01000      `sticky bit' (see below)
          S_IRWXU    00700      read, write, execute by owner
          S_IRUSR    00400      read by owner
          S_IWUSR    00200      write by owner
          S_IXUSR    00100      execute (search on directory) by owner
          S_IRWXG    00070      read, write, execute by group
          S_IRGRP    00040      read by group
          S_IWGRP    00020      write by group
          S_IXGRP    00010      execute (search on directory) by group
          S_IRWXO    00007      read, write, execute by others
          S_IROTH    00004      read by others
          S_IWOTH    00002      write by others
          S_IXOTH    00001      execute (search on directory) by others

     If mode ISVTX (the `sticky bit') is set on a directory,  an  unprivileged
     user  may  not  delete  or rename files of other users in that directory.
     (Minix-vmd)

     Only the owner of a file (or the super-user) may change the mode.

     Writing or changing the owner of a file turns  off  the  set-user-id  and
     set-group-id  bits  unless  the  user  is the super-user.  This makes the
     system somewhat more  secure  by  protecting  set-user-id  (set-group-id)
     files  from remaining set-user-id (set-group-id) if they are modified, at
     the expense of a degree of compatibility.

RETURN VALUE
     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and errno is set to indicate the error.







4BSD                              May 13, 1986                               1



CHMOD(2)                  Minix Programmer's Manual                   CHMOD(2)


ERRORS
     Chmod will fail and the file mode will be unchanged if:

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

     [ENAMETOOLONG] The path name exceeds PATH_MAX characters.

     [ENOENT]       The named file does not exist.

     [EACCES]       Search permission is denied for a component  of  the  path
                    prefix.

     [ELOOP]        Too many symbolic links were  encountered  in  translating
                    the pathname.  (Minix-vmd)

     [EPERM]        The effective user ID does not match the owner of the file
                    and the effective user ID is not the super-user.

     [EROFS]        The named file resides on a read-only file system.

     [EFAULT]       Path points outside the process's allocated address space.

     [EIO]          An I/O error occurred while reading from or writing to the
                    file system.

SEE ALSO
     chmod(1), open(2), chown(2), stat(2).

NOTES
     The sticky bit was historically used to lock important  executables  into
     memory.





















4BSD                              May 13, 1986                               2

