chmod(2)chmod(2)NAME
chmod, fchmod - Change file access permissions
SYNOPSIS
#include <sys/types.h> #include <sys/stat.h>
int chmod(
const char *path,
mode_t mode ); #include <sys/stat.h>
int fchmod(
int filedes,
mode_t mode );
STANDARDS
Interfaces documented on this reference page conform to industry stan‐
dards as follows:
chmod(): XSH4.0, XSH4.2, XSH5.0
fchmod(): XSH4.2, XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
Specifies the full pathname of the file. If the path parameter refers
to a symbolic link, the chmod() function changes access permissions on
the file specified by the symbolic link. Specifies the file descriptor
of an open file. Specifies the bit pattern that determines the access
permissions.
DESCRIPTION
The chmod() function sets the access permissions of the file specified
by the path parameter according to the bit pattern specified by the
mode parameter.
The fchmod() function sets the access permissions of an open file
pointed to by the filedes parameter according to the bit pattern speci‐
fied by the mode parameter.
To change file access permissions, the process must have the same
effective user ID as the owner of the file or have superuser privilege.
Upon successful completion, the chmod() and fchmod() functions mark the
st_ctime field of the file for update.
The mode parameter is constructed by logically ORing one or more of the
following values, which are defined in the sys/mode.h header file: Sets
the process' effective user ID to the file's owner on execution. Sets
the process' effective group ID to the file's group on execution.
Saves text image after execution. Permits the file's owner to read,
write, and execute it (or to search the directory). Permits the file's
owner to read it. Permits the file's owner to write to it. Permits
the file's owner to execute it (or to search the directory). Permits
the file's group to read, write, and execute it (or to search the
directory). Permits the file's group to read it. Permits the file's
group to write to it. Permits the file's group to execute it (or to
search the directory). Permits others to read, write, and execute it
(or to search the directory). Permits others to read the file. Per‐
mits others to write to the file. Permits others to execute the file
(or to search the directory).
Other mode values exist that can be set with the mknod() function, but
not with the chmod() function.
If the mode bit S_ISGID is set and the mode bit S_IXGRP is not set,
mandatory file record locking will exist on a regular file. This may
affect subsequent calls to other calls on the file, including open(),
creat(), read(), write(), and truncate().
The S_ISGID bit of the file is cleared if: The file is a regular file.
The effective user ID of the process does not have appropriate system
privilege. The effective group ID or one of the IDs in the group
access list of the process does not match the file's existing group ID.
RETURN VALUES
Upon successful completion, the chmod() and fchmod() functions return a
value of 0 (zero). If the chmod() or fchmod() function fails, a value
of -1 is returned, and errno is set to indicate the error.
ERRORS
If the chmod() function fails, the file permissions remain unchanged
and errno may be set to one of the following values: A component of the
path parameter has search permission denied. [Tru64 UNIX] The path
parameter points to a location outside of the allocated address space
of the process. A signal was caught during execution of the system
call. The file is not a regular file. Too many symbolic links were
encountered in translating the path parameter. The length of the path
argument exceeds PATH_MAX or a pathname component is longer than
NAME_MAX. The named file does not exist or is an empty string.
A symbolic link was named, but the file to which it refers does
not exist. A component of the path parameter is not a direc‐
tory. The effective user ID does not match the ID of the owner
of the file or the owner does not have appropriate system privi‐
lege. The named file resides on a read-only file system [Tru64
UNIX] The process's root or current directory is located in a
virtual file system that has been unmounted.
If the fchmod() function fails, the file permissions remain unchanged
and errno may be set to one of the following values: The file descrip‐
tor filedes is not valid. A signal was caught during execution of the
system call. The effective user ID does not match the ID of the owner
of the file, and the calling process does not have superuser privilege
. The file referred to by filedes resides on a read-only file system.
[Tru64 UNIX] The process' root or current directory is located in a
virtual file system that has been unmounted.
SEE ALSOFunctions:chown(2), fcntl(2), getgroups(2), mknod(2), open(2), read(2)setgroups(2)truncate(2)write(2)
Commands: chgrp(1), chmod(1)
Others: standards(5)chmod(2)