*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> chmod (2)              
Title
Content
Arch
Section
 

CHMOD(2)

Contents


NAME    [Toc]    [Back]

     chmod, fchmod - change mode of file

SYNOPSIS    [Toc]    [Back]

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

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

     int
     fchmod(int fd, mode_t mode);

DESCRIPTION    [Toc]    [Back]

     The function chmod() sets the file permission  bits  of  the
file specified
     by  the pathname path to mode.  fchmod() sets the permission
bits of the
     specified file descriptor fd.   chmod()  verifies  that  the
process owner
     (user) either owns the file specified by path (or fd), or is
the superuser.
  A mode is created from or'd permission  bit  masks  defined in
     <sys/stat.h>:

           #define S_IRWXU 0000700    /* RWX mask for owner */
           #define S_IRUSR 0000400    /* R for owner */
           #define S_IWUSR 0000200    /* W for owner */
           #define S_IXUSR 0000100    /* X for owner */

           #define S_IRWXG 0000070    /* RWX mask for group */
           #define S_IRGRP 0000040    /* R for group */
           #define S_IWGRP 0000020    /* W for group */
           #define S_IXGRP 0000010    /* X for group */

           #define S_IRWXO 0000007    /* RWX mask for other */
           #define S_IROTH 0000004    /* R for other */
           #define S_IWOTH 0000002    /* W for other */
           #define S_IXOTH 0000001    /* X for other */

           #define S_ISUID 0004000    /* set user id on execution
*/
           #define S_ISGID 0002000    /* set group id  on  execution */
           #define  S_ISVTX  0001000    /* save swapped text even
after use */

     If mode ISVTX (the sticky bit) is set on a file, it  is  ignored.

     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.  The
     sticky  bit  may be set by any user on a directory which the
user owns or
     has appropriate permissions.  For more details of the  properties of the
     sticky bit, see sticky(8).

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

RETURN VALUES    [Toc]    [Back]

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

ERRORS    [Toc]    [Back]

     chmod() will fail and the file mode will be unchanged if:

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

     [ENAMETOOLONG]
                   A  component of a pathname exceeded {NAME_MAX}
characters,
                   or an entire  path  name  exceeded  {PATH_MAX}
characters.

     [ENOENT]      The named file does not exist.

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

     [EINVAL]      mode contains bits other than  the  file  type
and those described
 above.

     [ELOOP]        Too  many  symbolic links were encountered in
translating the
                   pathname.

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

     [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.

     fchmod() will fail and the file mode will be unchanged if:

     [EBADF]       The descriptor is not valid.

     [EINVAL]      fd refers to a socket, not to a file.

     [EINVAL]       mode  contains  bits other than the file type
and those described
 above.

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

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

SEE ALSO    [Toc]    [Back]

      
      
     chmod(1), chown(2), open(2), stat(2), sticky(8)

STANDARDS    [Toc]    [Back]

     The  chmod()  function  is  expected  to conform to IEEE Std
1003.1-1988
     (``POSIX'').

HISTORY    [Toc]    [Back]

     The fchmod() function call appeared in 4.2BSD.

OpenBSD      3.6                           June      4,      1993
[ Back ]
 Similar pages
Name OS Title
chmod IRIX change mode of a file
chmod HP-UX change file mode access permissions
chmod HP-UX change file mode access permissions
fchmod HP-UX change file mode access permissions
chmod IRIX change the permissions mode of a file or directory
doublebuffer IRIX sets the display mode to double buffer mode
umask IRIX set file-creation mode mask
umask OpenBSD set file creation mode mask
umask FreeBSD set file creation mode mask
umask NetBSD set file creation mode mask
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service