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

FreeBSD Manual Pages

  
 
  

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

NAME
     chmod -- change file modes

SYNOPSIS
     chmod [-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 options are as	follows:

     -H	     If	the -R option is specified, symbolic links on the command line
	     are followed.  (Symbolic links encountered	in the tree traversal
	     are not followed.)

     -L	     If	the -R option is specified, all	symbolic links are followed.

     -P	     If	the -R option is specified, no symbolic	links are followed.

     -R	     Change the	modes of the file hierarchies rooted in	the files in-
	     stead of just the files themselves.

     Symbolic links do not have	modes, so unless the -H	or -L option is	set,
     chmod on a	symbolic link always succeeds and has no effect.  The -H, -L
     and -P options are	ignored	unless the -R option is	specified.  In addi-
     tion, these options override each other and the command's actions are de-
     termined by the last one specified.

     Only the owner of a file or the super-user	is permitted to	change the
     mode of a file.

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

MODES
     Modes may be absolute or symbolic.	 An absolute mode is an	octal number
     constructed by or-ing the following values:

	   4000	   set-user-ID-on-execution
	   2000	   set-group-ID-on-execution
	   1000	   sticky bit, see chmod(2)
	   0400	   read	by owner
	   0200	   write by owner
	   0100	   execute (or search for directories) by owner
	   0070	   read, write,	execute/search by group
	   0007	   read, write,	execute/search by others

     The read, write, and execute/search values	for group and others are en-
     coded as described	for owner.

     The symbolic mode is described by the following grammar:

	   mode		::= clause [, clause ...]
	   clause	::= [who ...] [action ...] last_action
	   action	::= op [perm ...]
	   last_action	::= op [perm ...]
	   who		::= a |	u | g |	o
	   op		::= + |	- | =
	   perm		::= r |	s | t |	w | x |	X | u |	g | o

     The who symbols ``u'', ``g'', and ``o'' specify the user, group, and
     other parts of the	mode bits, respectively.  The who symbol ``a'' is
     equivalent	to ``ugo''.

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

	   r	   The read bits.
	   s	   The set-user-ID-on-execution	and set-group-ID-on-execution
		   bits.
	   t	   The sticky bit.
	   w	   The write bits.
	   x	   The 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.	Operations with	the perm symbol	``X'' are only
		   meaningful in conjunction with the op symbol	``+'', and are
		   ignored in all other	cases.
	   u	   The user permission bits in the mode	of the original	file.
	   g	   The group permission	bits in	the mode of the	original file.
	   o	   The other permission	bits in	the mode of the	original file.

     The op symbols represent the operation performed, as follows:

     +	   If no value is supplied for perm, the ``+'' operation has no	ef-
	   fect.  If no	value is supplied for who, each	permission bit speci-
	   fied	in perm, for which the corresponding bit in the	file mode cre-
	   ation 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	ef-
	   fect.  If no	value is supplied for who, each	permission bit speci-
	   fied	in perm, for which the corresponding bit in the	file mode cre-
	   ation mask is clear,	is cleared.  Otherwise,	the mode bits repre-
	   sented 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 owner, group	and other mode bits are
	   cleared.  Then, 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 rep-
	   resented by the specified who and perm values are set.

     Each clause specifies one or more operations to be	performed on the mode
     bits, and each operation is applied to the	mode bits in the order speci-
     fied.

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

EXAMPLES
     644	   make	a file readable	by anyone and writable by the owner
		   only.

     go-w	   deny	write permission to group and others.

     =rw,+X	   set the read	and write permissions to the usual defaults,
		   but retain any execute permissions that are currently set.

     +X		   make	a directory or file searchable/executable by everyone
		   if it is already searchable/executable by anyone.

     755
     u=rwx,go=rx
     u=rwx,go=u-w  make	a file readable/executable by everyone and writable by
		   the owner only.

     go=	   clear all mode bits for group and others.

     g=u-w	   set the group bits equal to the user	bits, but clear	the
		   group write bit.

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

SEE ALSO
     chflags(1), install(1), chmod(2), stat(2),	umask(2), fts(3), setmode(3),
     symlink(7), chown(8)

STANDARDS
     The chmod utility is expected to be IEEE Std 1003.2 ("POSIX.2") compati-
     ble with the exception of the perm	symbols	"t" and	"X" which are not in-
     cluded in that standard.

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

BSD				March 31, 1994				   BSD

NAME | SYNOPSIS | DESCRIPTION | MODES | EXAMPLES | BUGS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=chmod&manpath=FreeBSD+2.2.5-RELEASE>

home | help