133 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .\" Copyright (c) 1980 Regents of the University of California.
 | |
| .\" All rights reserved.  The Berkeley software License Agreement
 | |
| .\" specifies the terms and conditions for redistribution.
 | |
| .\"
 | |
| .\"	@(#)chmod.2	6.5 (Berkeley) 5/13/86
 | |
| .\"
 | |
| .TH CHMOD 2 "May 13, 1986"
 | |
| .UC 4
 | |
| .SH NAME
 | |
| chmod, fchmod \- change mode of file
 | |
| .SH SYNOPSIS
 | |
| .nf
 | |
| .ft B
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| 
 | |
| int chmod(const char *\fIpath\fP, mode_t \fImode\fP)
 | |
| .ig \" You never know
 | |
| .PP
 | |
| .ft B
 | |
| int fchmod(int \fIfd\fP, mode_t \fImode\fP)
 | |
| ..
 | |
| .fi
 | |
| .SH DESCRIPTION
 | |
| The file whose name
 | |
| is given by \fIpath\fP
 | |
| .ig
 | |
| or referenced by the descriptor
 | |
| .I fd
 | |
| ..
 | |
| has its mode changed to
 | |
| .IR mode .
 | |
| Modes are constructed by
 | |
| .IR or 'ing
 | |
| together some
 | |
| combination of the following, defined in
 | |
| .IR <sys/stat.h> :
 | |
| .PP
 | |
| .RS
 | |
| .nf
 | |
| .ta \w'S_ISUID\ \ 'u +\w'04000\ \ \ 'u
 | |
| S_ISUID	04000	set user ID on execution
 | |
| S_ISGID	02000	set group ID on execution
 | |
| S_ISVTX	01000	`sticky bit' (see below)
 | |
| S_IRWXU	00700	read, write, execute by owner
 | |
| S_IRUSR	00400	read by owner
 | |
| S_IWUSR	00200	write by owner
 | |
| S_IXUSR	00100	execute (search on directory) by owner
 | |
| S_IRWXG	00070	read, write, execute by group
 | |
| S_IRGRP	00040	read by group
 | |
| S_IWGRP	00020	write by group
 | |
| S_IXGRP	00010	execute (search on directory) by group
 | |
| S_IRWXO	00007	read, write, execute by others
 | |
| S_IROTH	00004	read by others
 | |
| S_IWOTH	00002	write by others
 | |
| S_IXOTH	00001	execute (search on directory) by others
 | |
| .fi
 | |
| .RE
 | |
| .PP
 | |
| If mode ISVTX (the `sticky bit') is set on a directory,
 | |
| an unprivileged user may not delete or rename
 | |
| files of other users in that directory.  (Minix-vmd)
 | |
| .PP
 | |
| Only the owner of a file (or the super-user) may change the mode.
 | |
| .PP
 | |
| Writing or changing the owner of a file
 | |
| turns off the set-user-id and set-group-id bits
 | |
| unless the user is the super-user.
 | |
| This makes the system somewhat more secure
 | |
| by protecting set-user-id (set-group-id) files
 | |
| from remaining set-user-id (set-group-id) if they are modified,
 | |
| at the expense of a degree of compatibility.
 | |
| .SH "RETURN VALUE
 | |
| Upon successful completion, a value of 0 is returned.
 | |
| Otherwise, a value of \-1 is returned and
 | |
| .B errno
 | |
| is set to indicate the error.
 | |
| .SH "ERRORS
 | |
| .B Chmod
 | |
| will fail and the file mode will be unchanged if:
 | |
| .TP 15
 | |
| [ENOTDIR]
 | |
| A component of the path prefix is not a directory.
 | |
| .TP 15
 | |
| [ENAMETOOLONG]
 | |
| The path name exceeds PATH_MAX characters.
 | |
| .TP 15
 | |
| [ENOENT]
 | |
| The named file does not exist.
 | |
| .TP 15
 | |
| [EACCES]
 | |
| Search permission is denied for a component of the path prefix.
 | |
| .TP 15
 | |
| [ELOOP]
 | |
| Too many symbolic links were encountered in translating the pathname.
 | |
| (Minix-vmd)
 | |
| .TP 15
 | |
| [EPERM]
 | |
| The effective user ID does not match the owner of the file and
 | |
| the effective user ID is not the super-user.
 | |
| .TP 15
 | |
| [EROFS]
 | |
| The named file resides on a read-only file system.
 | |
| .TP 15
 | |
| [EFAULT]
 | |
| .I Path
 | |
| points outside the process's allocated address space.
 | |
| .TP 15
 | |
| [EIO]
 | |
| An I/O error occurred while reading from or writing to the file system.
 | |
| .ig
 | |
| .PP
 | |
| .I Fchmod
 | |
| will fail if:
 | |
| .TP 15
 | |
| [EBADF]
 | |
| The descriptor is not valid.
 | |
| .TP 15
 | |
| [EROFS]
 | |
| The file resides on a read-only file system.
 | |
| .TP 15
 | |
| [EIO]
 | |
| An I/O error occurred while reading from or writing to the file system.
 | |
| ..
 | |
| .SH "SEE ALSO"
 | |
| .BR chmod (1),
 | |
| .BR open (2),
 | |
| .BR chown (2),
 | |
| .BR stat (2).
 | |
| .SH NOTES
 | |
| The sticky bit was historically used to lock important executables into
 | |
| memory.
 | 
