chmod, fchmod - Change file access permissions
#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 );
Interfaces documented on this reference page conform to
industry standards 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.
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.
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
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.
Permits 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.
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.
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 directory. The effective user
ID does not match the ID of the owner of the file
or the owner does not have appropriate system privilege.
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 descriptor 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.
Functions: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)
[ Back ] |