CHMOD
Section: Linux Programmer's Manual (2)
Updated: 21 July 1993
Index
Return to Main Contents
NAME
chmod, fchmod - change permissions of a file
SYNOPSIS
#include <sys/types.h>
#include <sys/stat.h>
int chmod(const char *path, mode_t mode);
int fchmod(int fildes, mode_t mode);
DESCRIPTION
The mode of the file given by
path
or referenced by
filedes
is changed.
Modes are specified by
or'ing
the following:
-
- S_ISUID
-
04000 set user ID on execution
- S_ISGID
-
02000 set group ID on execution
- S_ISVTX
-
01000 sticky bit
- S_IRUSR (S_IREAD)
-
00400 read by owner
- S_IWUSR (S_IWRITE)
-
00200 write by owner
- S_IXUSR (S_IEXEC)
-
00100 execute/search by owner
- 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
The effective UID of the process must be zero or must match the owner of
the file.
The effective UID or GID must be appropriate for setting execution bits.
Depending on the file system, set user ID and set group ID execution bits
may be turned off if a file is written. On some file systems, only the
super-user can set the sticky bit, which may have a special meaning (i.e.,
for directories, a file can only be deleted by the owner or the super-user).
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:
- EPERM
-
The effective UID does not match the owner of the file, and is not zero.
- EROFS
-
The named file resides on a read-only file system.
- EFAULT
-
path
points outside your accessible address space.
- 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.
- EACCES
-
Search permission is denied on a component of the path prefix.
- ELOOP
-
path
contains a circular reference (i.e., via a symbolic link)
The general errors for
fchmod
are listed below:
- EBADF
-
The descriptor is not value.
- ENOENT
-
See above.
- EPERM
-
See above.
- EROFS
-
See above.
SEE ALSO
open(2), chown(2), stat(2)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 12:25:05 GMT, March 22, 2025