Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CHMOD(2)		   Linux Programmer's Manual		      CHMOD(2)

NAME
       chmod, fchmod - change permissions of a file

SYNOPSIS
       #include	<sys/types.h>
       #include	<sys/stat.h>

       int chmod(const char *path, mode_t mode);
       int fchmod(int fildes, mode_t mode);

DESCRIPTION
       The mode	of the file given by path or referenced	by fildes is changed.

       Modes are specified by or'ing the following:

	      S_ISUID	04000 set user ID on execution

	      S_ISGID	02000 set group	ID on execution

	      S_ISVTX	01000 sticky bit

	      S_IRUSR (S_IREAD)
			00400 read by owner

	      S_IWUSR (S_IWRITE)
			00200 write by owner

	      S_IXUSR (S_IEXEC)
			00100 execute/search by	owner

	      S_IRGRP	00040 read by group

	      S_IWGRP	00020 write by group

	      S_IXGRP	00010 execute/search by	group

	      S_IROTH	00004 read by others

	      S_IWOTH	00002 write by others

	      S_IXOTH	00001 execute/search by	others

       The  effective  UID of the process must be zero or must match the owner
       of the file.

       If the effective	UID of the process is not zero and the	group  of  the
       file does not match the effective group ID of the process or one	of its
       supplementary group IDs,	the S_ISGID bit	will be	turned off,  but  this
       will not	cause an error to be returned.

       Depending  on  the  file	system,	set user ID and	set group ID execution
       bits may	be turned off if a file	is written.   On  some	file  systems,
       only  the  super-user  can set the sticky bit, which may	have a special
       meaning.	 For the sticky	bit, and for set user ID and set group ID bits
       on directories, see stat(2).

       On  NFS	file systems, restricting the permissions will immediately in-
       fluence already open files, because the access control is done  on  the
       server, but open	files are maintained by	the client.  Widening the per-
       missions	may be delayed for other clients if attribute caching  is  en-
       abled on	them.

RETURN VALUE
       On  success,  zero is returned.	On error, -1 is	returned, and errno is
       set appropriately.

ERRORS
       Depending on the	file system, other errors can be returned.   The  more
       general errors for chmod	are listed below:

       EPERM  The  effective  UID does not match the owner of the file,	and is
	      not zero.

       EROFS  The named	file resides on	a read-only file system.

       EFAULT path points outside your accessible address space.

       ENAMETOOLONG
	      path is too long.

       ENOENT The file does not	exist.

       ENOMEM Insufficient kernel memory was available.

       ENOTDIR
	      A	component of the path prefix is	not a directory.

       EACCES Search permission	is denied on a component of the	path prefix.

       ELOOP  Too many symbolic	links were encountered in resolving path.

       EIO    An I/O error occurred.

       The general errors for fchmod are listed	below:

       EBADF  The file descriptor fildes is not	valid.

       EROFS  See above.

       EPERM  See above.

       EIO    See above.

CONFORMING TO
       The chmod call conforms to SVr4,	SVID,  POSIX,  X/OPEN,	4.4BSD.	  SVr4
       documents EINTR,	ENOLINK	and EMULTIHOP returns, but no ENOMEM.  POSIX.1
       does not	document EFAULT, ENOMEM, ELOOP or EIO error conditions,	or the
       macros S_IREAD, S_IWRITE	and S_IEXEC.

       The fchmod call conforms	to 4.4BSD and SVr4.  SVr4 documents additional
       EINTR and ENOLINK error conditions.  POSIX requires the fchmod function
       if at least one of _POSIX_MAPPED_FILES and _POSIX_SHARED_MEMORY_OBJECTS
       is defined, and documents additional ENOSYS  and	 EINVAL	 error	condi-
       tions, but does not document EIO.

       POSIX and X/OPEN	do not document	the sticky bit.

SEE ALSO
       open(2),	chown(2), execve(2), stat(2)

Linux 2.0.32			  1997-12-10			      CHMOD(2)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | CONFORMING TO | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=chmod&sektion=2&manpath=Red+Hat+9>

home | help