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

FreeBSD Manual Pages

  
 
  

home | help
CHMOD(1)		FreeBSD	General	Commands Manual		      CHMOD(1)

NAME
     chmod -- change file modes

SYNOPSIS
     chmod [-h]	[-R [-H	| -L | -P]] mode file ...

DESCRIPTION
     The chmod utility modifies	the file mode bits of the listed files as
     specified by the mode operand.  The mode of a file	dictates its permis-
     sions, among other	attributes.

     The options are as	follows:

     -H	     If	the -R option is also specified, symbolic links	on the command
	     line are followed.	 Symbolic links	encountered in the tree	tra-
	     versal are	not followed.

     -h	     Treat symbolic links like other files: modify links instead of
	     following them.  The -h and -R options are	mutually exclusive.

     -L	     If	the -R option is also specified, all symbolic links are	fol-
	     lowed.

     -P	     If	the -R option is also specified, no symbolic links are fol-
	     lowed.

     -R	     Recurse.  Where file is a directory, change the mode of the di-
	     rectory and all the files and directories in the file hierarchy
	     below it.

     Symbolic links have modes,	but those modes	have no	effect on the kernel's
     access checks.  The -H, -L, and -P	options	are ignored unless the -R op-
     tion is specified;	if none	of them	are given, the default is to not fol-
     low symbolic links.  In addition, these options override each other and
     the command's actions are determined by the last one specified.

     Only the file's owner or the superuser is permitted to change the mode of
     a file.

   Absolute modes
     Absolute modes are	specified according to the following format:

	   chmod nnnn file ...

     An	absolute mode is an octal number (specified as nnnn, where n is	a num-
     ber from 0	to 7) constructed by ORing any of the following	values:

	   0400	   Allow read by owner.
	   0200	   Allow write by owner.
	   0100	   Allow execution (or search in directories) by owner.
	   0700	   Allow read, write, and execute/search by owner.
	   0040	   Allow read by group.
	   0020	   Allow write by group.
	   0010	   Allow execution (or search in directories) by group.
	   0070	   Allow read, write, and execute/search by group.
	   0004	   Allow read by others.
	   0002	   Allow write by others.
	   0001	   Allow execution (or search in directories) by others.
	   0007	   Allow read, write, and execute/search by others.

     In	addition to the	file permission	modes, the following mode bits are
     available:

	   4000	   Set-user-ID on execution.
	   2000	   Set-group-ID	on execution.
	   1000	   Enable sticky bit; see sticky(8) and	chmod(2).

     The execute bit for a directory is	often referred to as the "search" bit.
     In	order to access	a file,	a user must have execute permission in each
     directory leading up to it	in the filesystem hierarchy.  For example, to
     access the	file /bin/ls, execute permission is needed on /, /bin, and, of
     course, the ls binary itself.

   Symbolic modes
     Symbolic modes are	specified according to the following format:

	   chmod [who]op[perm],... file	...

     The who symbols indicate whose permissions	are to be changed or assigned:

	   u	 User (owner) permissions.
	   g	 Group permissions.
	   o	 Others	permissions.
	   a	 All of	the above.

     Do	not confuse the	`o' symbol with	"owner".  It is	the user bit, `u',
     that refers to the	owner of the file.

     The op symbols represent the operation performed, as follows:

	   +	 If no value is	supplied for perm, the `+' operation has no
		 effect.  If no	value is supplied for who, each	permission bit
		 specified in perm, for	which the corresponding	bit in the
		 file mode creation mask is clear, is set.  Otherwise, the
		 mode bits represented by the specified	who and	perm values
		 are set.

	   -	 If no value is	supplied for perm, the `-' operation has no
		 effect.  If no	value is supplied for who, each	permission bit
		 specified in perm, for	which the corresponding	bit in the
		 file mode creation mask is clear, is cleared.	Otherwise, the
		 mode bits represented by the specified	who and	perm values
		 are cleared.

	   =	 The mode bits specified by the	who value are cleared or, if
		 no who	value is specified, the	user, group and	other mode
		 bits are cleared.  Then, if no	value is supplied for who,
		 each permission bit specified in perm,	for which the corre-
		 sponding bit in the file mode creation	mask is	clear, is set.
		 Otherwise, the	mode bits represented by the specified who and
		 perm values are set.

     The perm (permission symbols) represent the portions of the mode bits as
     follows:

	   r	   Read	bits.
	   s	   Set-user-ID and set-group-ID	on execution bits.
	   t	   Sticky bit.
	   w	   Write bits.
	   x	   Execute/search bits.
	   X	   The execute/search bits if the file is a directory or any
		   of the execute/search bits are set in the original (unmodi-
		   fied) mode.
	   u	   User	permission bits	in the mode of the original file.
	   g	   Group permission bits in the	mode of	the original file.
	   o	   Other permission bits in the	mode of	the original file.

     Each clause (given	in a comma-delimited list on the command line) speci-
     fies one or more operations to be performed on the	mode bits, and each
     operation is applied in the order specified.

     Operations	upon the "other" permissions (specified	by the symbol `o' by
     itself), in combination with the perm symbols `s' or `t', are ignored.

EXIT STATUS
     The chmod utility exits 0 on success, and >0 if an	error occurs.

EXAMPLES
     Set file readable by anyone and writable by the owner only:

	   $ chmod 644 file

     Deny write	permission to group and	others:

	   $ chmod go-w	file

     Set the read and write permissions	to the usual defaults, but retain any
     execute permissions that are currently set:

	   $ chmod =rwX	file

     Make a directory or file searchable/executable by everyone	if it is al-
     ready searchable/executable by anyone:

	   $ chmod +X file

     Any of these commands will	make a file readable/executable	by everyone
     and writable by the owner only:

	   $ chmod 755 file
	   $ chmod u=rwx,go=rx file
	   $ chmod u=rwx,go=u-w	file

     Clear all mode bits for group and others:

	   $ chmod go= file

     Set the group bits	equal to the user bits,	but clear the group write bit:

	   $ chmod g=u-w file

SEE ALSO
     chflags(1), chgrp(1), find(1), install(1),	chmod(2), stat(2), umask(2),
     fts_open(3), setmode(3), symlink(7), chown(8), sticky(8)

STANDARDS
     The chmod utility is compliant with the IEEE Std 1003.1-2008 ("POSIX.1")
     specification.

     The flags [-HLP] are extensions to	that specification.

     The `t' perm symbol (sticky bit) is marked	by IEEE	Std 1003.1-2008
     ("POSIX.1") as being an X/Open System Interfaces option.

HISTORY
     A chmod command appeared in Version 1 AT&T	UNIX.

BUGS
     There's no	perm option for	the naughty bits.

FreeBSD	13.0		       September 2, 2019		  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | EXIT STATUS | EXAMPLES | SEE ALSO | STANDARDS | HISTORY | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=chmod&sektion=1&manpath=OpenBSD+6.9>

home | help