 |
Index for Section 2 |
|
 |
Alphabetical listing for C |
|
 |
Bottom of page |
|
chmod(2)
NAME
chmod, fchmod - Changes file access permissions
SYNOPSIS
#include <sys/mode.h>
#include <sys/types.h>
#include <sys/stat.h>
int chmod (
const char *path,
mode_t mode );
int fchmod (
int filedes,
mode_t mode );
STANDARDS
Interfaces documented on this reference page conform to industry standards
as follows:
chmod(), fchmod(): XSH5.0
Refer to the standards(5) reference page for more information about
industry standards and associated tags.
PARAMETERS
path 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.
filedes Specifies the file descriptor of an open file.
mode 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 specified 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 the process must 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:
S_ISUID Sets the process' effective user ID to the file's owner on
execution.
S_ISGID Sets the process' effective group ID to the file's group on
execution.
S_ISVTX Saves text image after execution.
S_IRWXU Permits the file's owner to read, write, and execute it (or to
search the directory).
S_IRUSR Permits the file's owner to read it.
S_IWUSR Permits the file's owner to write to it.
S_IXUSR Permits the file's owner to execute it (or to search the
directory).
S_IRWXG Permits the file's group to read, write, and execute it (or to
search the directory).
S_IRGRP Permits the file's group to read it.
S_IWGRP Permits the file's group to write to it.
S_IXGRP Permits the file's group to execute it (or to search the
directory).
S_IRWXO Permits others to read, write, and execute it (or to search the
directory).
S_IROTH Permits others to read the file.
S_IWOTH Permits others to write to the file.
S_IXOTH 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:
[EACCES] A component of the path parameter has search permission denied.
[EFAULT] The path parameter points to a location outside of the allocated
address space of the process.
[EINTR] A signal was caught during execution of the system call.
[EINVAL] The file is not a regular file.
[ELOOP] Too many symbolic links were encountered in translating the path
parameter.
[ENAMETOOLONG]
The length of the path argument exceeds PATH_MAX or a pathname
component is longer than NAME_MAX.
[ENOENT] 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.
[ENOTDIR] A component of the path parameter is not a directory.
[EPERM] The effective user ID does not match the ID of the owner of the
file or the owner does not have appropriate system privilege.
[EROFS] The named file resides on a read-only file system
[ESTALE] [Tru64 UNIX] The process' 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:
[EBADF] The file descriptor filedes is not valid.
[EINTR] A signal was caught during execution of the system call.
[EPERM] The effective user ID does not match the ID of the owner of the
file, and the calling process does not have superuser privilege.
[EROFS] The file referred to by filedes resides on a read-only file
system.
[ESTALE] [Tru64 UNIX] The process' root or current directory is located
in a virtual file system that has been unmounted.
RELATED INFORMATION
Functions: chown(2), fcntl(2), getgroups(2), mknod(2), open(2), read(2)
setgroups(2) truncate(2) write(2)
Commands: chgrp(1), chmod(1)
Standards: standards(5)
 |
Index for Section 2 |
|
 |
Alphabetical listing for C |
|
 |
Top of page |
|