Content-type: text/html Man page of chmod

chmod

Section: System Calls (2)
Index Return to Main Contents
 

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(): POSIX.1, XPG4, XPG4-UNIX

fchmod(): POSIX.1, XPG4-UNIX

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 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: 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.  

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. 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 [Digital] 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: 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. [Digital] 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)

delim off


 

Index

NAME
SYNOPSIS
STANDARDS
PARAMETERS
DESCRIPTION
RETURN VALUES
ERRORS
RELATED INFORMATION

This document was created by man2html, using the manual pages.
Time: 02:40:15 GMT, October 02, 2010