|CHMOD(2)||Linux Programmer's Manual||CHMOD(2)|
NAME¶chmod, fchmod - change permissions of a file
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
_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.
- 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 directory, 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 directories, 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
- S_IWOTH (00002)
- write by others
- S_IXOTH (00001)
- execute/search by others
RETURN VALUE¶On success, zero is returned. On error, -1 is returned, and errno is set appropriately.
ERRORS¶Depending on the file system, other errors can be returned. The more general errors for chmod() are listed below:
- Search permission is denied on a component of the path prefix. (See also path_resolution(7).)
- path points outside your accessible address space.
- An I/O error occurred.
- Too many symbolic links were encountered in resolving path.
- path is too long.
- The file does not exist.
- Insufficient kernel memory was available.
- A component of the path prefix is not a directory.
- 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).
- The named file resides on a read-only file system.
- The file descriptor fd is not valid.
- See above.
- See above.
- See above.
CONFORMING TO¶4.4BSD, SVr4, POSIX.1-2001.
SEE ALSO¶chown(2), execve(2), fchmodat(2), open(2), stat(2), path_resolution(7)
COLOPHON¶This page is part of release 3.44 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/.