CHMOD(2) CHMOD(2)
NAME
chmod - change mode of file
SYNOPSIS
int chmod (path, mode)
char *path;
int mode;
DESCRIPTION
Path points to a path name naming a file. chmod sets the
access permission portion of the named file's mode according
to the bit pattern contained in mode.
Access permission bits are interpreted as follows:
04000 Set user ID on execution.
020#0 Set group ID on execution if # is 7, 5, 3, or 1
Enable mandatory file/record locking if # is 6, 4, 2, or 0
01000 Save text image after execution.
00400 Read by owner.
00200 Write by owner.
00100 Execute (search if a directory) by owner.
00070 Read, write, execute (search) by group.
00007 Read, write, execute (search) by others.
The effective user ID of the process must match the owner of
the file or be super-user to change the mode of a file.
If the effective user ID of the process is not super-user
and the file is not a directory, mode bit 01000 (save text
image on execution) is cleared.
If the effective user ID of the process is not super-user
and the effective group ID of the process does not match the
group ID of the file, mode bit 02000 (set group ID on
execution) is cleared.
If a 410 executable file has the sticky bit (mode bit 01000)
set, the operating system will not delete the program text
from the swap area when the last user process terminates.
Page 1 May 1989
CHMOD(2) CHMOD(2)
If a 413 executable file has the sticky bit set, the
operating system will not delete the program text from
memory when the last user process terminates. In either
case, if the sticky bit is set the text will already be
available (either in a swap area or in memory) when the next
user of the file executes it, thus making execution faster.
If the executing process is not owned by the super-user,
chmod will mask the sticky-bit but will not return an error.
If a directory is writable and has the sticky bit set, files
within that directory can be removed only if one or more of
the following is true (see unlink(2)):
the user owns the file
the user owns the directory
the file is writable by the user
the user is the super-user
If the mode bit 02000 (set group ID on execution) is set and
the mode bit 00010 (execute or search by group) is not set,
mandatory file/record locking will exist on a regular file.
This may effect future calls to open(2), creat(2), read(2),
and write(2) on this file.
chmod will fail and the file mode will be unchanged if one
or more of the following are true:
[ENOTDIR] A component of the path prefix is not a
directory.
[ENOENT] The named file does not exist.
[EACCES] Search permission is denied on a component of
the path prefix.
[EPERM] The effective user ID does not match the
owner of the file and the effective user ID
is not super-user.
Page 2 May 1989
CHMOD(2) CHMOD(2)
[EROFS] The named file resides on a read-only file
system.
[EFAULT] Path points outside the allocated address
space of the process.
[EINTR] A signal was caught during the chmod system
call.
[ENOLINK] Path points to a remote machine and the link
to that machine is no longer active.
[EMULTIHOP] Components of path require hopping to
multiple remote machines.
SEE ALSO
chown(2), creat(2), fcntl(2), mknod(2), open(2), read(2),
write(2).
chmod(1) in the User's Reference Manual.
DIAGNOSTICS
Upon successful completion, a value of 0 is returned.
Otherwise, a value of -1 is returned and errno is set to
indicate the error.
Page 3 May 1989