unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



chmod(2)							     chmod(2)



NAME

  chmod, fchmod	- Changes file access permissions

SYNOPSIS

  #include <&lt;sys/mode.h>&gt;

  #include <&lt;sys/types.h>&gt;

  #include <&lt;sys/stat.h>&gt;

  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 indus-
  try 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 execu-
	    tion.

  S_ISGID   Sets the process' effective	group ID to the	file's group on	exe-
	    cution.

  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 direc-
	    tory).

  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 direc-
	    tory).

  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, manda-
  tory 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	sys-
	    tem.

  [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)