chmod man page on CentOS

Man page or keyword search:  
man Server   8420 pages
apropos Keyword Search (all sections)
Output format
CentOS logo
[printable version]

CHMOD(P)		   POSIX Programmer's Manual		      CHMOD(P)

PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the	 corresponding
       Linux  manual page for details of Linux behavior), or the interface may
       not be implemented on Linux.

NAME
       chmod - change the file modes

SYNOPSIS
       chmod [-R] mode file ...

DESCRIPTION
       The chmod utility shall change any or all of the file mode bits of  the
       file  named by each file operand in the way specified by the mode oper‐
       and.

       It is implementation-defined whether and how the chmod utility  affects
       any alternate or additional file access control mechanism (see the Base
       Definitions volume of IEEE Std 1003.1-2001, Section  4.4,  File	Access
       Permissions) being used for the specified file.

       Only a process whose effective user ID matches the user ID of the file,
       or a process with the appropriate privileges,  shall  be	 permitted  to
       change the file mode bits of a file.

OPTIONS
       The  chmod  utility  shall  conform  to	the Base Definitions volume of
       IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.

       The following option shall be supported:

       -R     Recursively change file mode bits. For each  file	 operand  that
	      names  a directory, chmod shall change the file mode bits of the
	      directory and all files in the file hierarchy below it.

OPERANDS
       The following operands shall be supported:

       mode   Represents the change to be made to the file mode bits  of  each
	      file  named  by  one  of	the  file  operands;  see the EXTENDED
	      DESCRIPTION section.

       file   A pathname of a file whose file mode bits shall be modified.

STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment  variables  shall  affect  the	 execution  of
       chmod:

       LANG   Provide  a  default value for the internationalization variables
	      that are unset or null. (See  the	 Base  Definitions  volume  of
	      IEEE Std 1003.1-2001,  Section  8.2,  Internationalization Vari‐
	      ables for the precedence of internationalization variables  used
	      to determine the values of locale categories.)

       LC_ALL If  set  to a non-empty string value, override the values of all
	      the other internationalization variables.

       LC_CTYPE
	      Determine the locale for	the  interpretation  of	 sequences  of
	      bytes  of	 text  data as characters (for example, single-byte as
	      opposed to multi-byte characters in arguments).

       LC_MESSAGES
	      Determine the locale that should be used to  affect  the	format
	      and contents of diagnostic messages written to standard error.

       NLSPATH
	      Determine the location of message catalogs for the processing of
	      LC_MESSAGES .

ASYNCHRONOUS EVENTS
       Default.

STDOUT
       Not used.

STDERR
       The standard error shall be used only for diagnostic messages.

OUTPUT FILES
       None.

EXTENDED DESCRIPTION
       The mode operand shall be either a symbolic_mode expression or  a  non-
       negative	 octal	integer.  The  symbolic_mode  form is described by the
       grammar later in this section.

       Each clause shall specify an operation to be performed on  the  current
       file  mode bits of each file. The operations shall be performed on each
       file in the order in which the clauses are specified.

       The who symbols u, g, and o shall specify the user,  group,  and	 other
       parts of the file mode bits, respectively. A who consisting of the sym‐
       bol a shall be equivalent to ugo.

       The perm symbols r, w, and x represent the read,	 write,	 and  execute/
       search  portions	 of  file  mode	 bits, respectively. The perm symbol s
       shall represent the  set-user-ID-on-execution  (when  who  contains  or
       implies	u) and set-group-ID-on-execution (when who contains or implies
       g) bits.

       The perm symbol X shall represent the  execute/search  portion  of  the
       file  mode  bits	 if the file is a directory or if the current (unmodi‐
       fied) file mode bits have at least one of the  execute  bits  (S_IXUSR,
       S_IXGRP,	 or  S_IXOTH)  set.  It	 shall be ignored if the file is not a
       directory and none of the execute bits are set in the current file mode
       bits.

       The  permcopy  symbols  u, g, and o shall represent the current permis‐
       sions associated with the user, group, and other parts of the file mode
       bits,  respectively.  For the remainder of this section, perm refers to
       the non-terminals perm and permcopy in the grammar.

       If multiple actionlists are grouped with a single wholist in the	 gram‐
       mar,  each actionlist shall be applied in the order specified with that
       wholist. The op symbols shall represent	the  operation	performed,  as
       follows:

       +      If perm is not specified, the '+' operation shall not change the
	      file mode bits.

       If who is not specified, the file mode bits represented by perm for the
       owner,  group, and other permissions, except for those with correspond‐
       ing bits in the file mode creation mask of the invoking process,	 shall
       be set.

       Otherwise, the file mode bits represented by the specified who and perm
       values shall be set.

       -      If perm is not specified, the '-' operation shall not change the
	      file mode bits.

       If who is not specified, the file mode bits represented by perm for the
       owner, group, and other permissions, except for those with  correspond‐
       ing  bits in the file mode creation mask of the invoking process, shall
       be cleared.

       Otherwise, the file mode bits represented by the specified who and perm
       values shall be cleared.

       =      Clear  the  file mode bits specified by the who value, or, if no
	      who value is specified, all of the file mode bits	 specified  in
	      this volume of IEEE Std 1003.1-2001.

       If perm is not specified, the '=' operation shall make no further modi‐
       fications to the file mode bits.

       If who is not specified, the file mode bits represented by perm for the
       owner,  group, and other permissions, except for those with correspond‐
       ing bits in the file mode creation mask of the invoking process,	 shall
       be set.

       Otherwise, the file mode bits represented by the specified who and perm
       values shall be set.

       When using the symbolic mode form on a regular file, it is  implementa‐
       tion-defined whether or not:

	* Requests to set the set-user-ID-on-execution or set-group-ID-on-exe‐
	  cution bit when all execute bits are currently clear	and  none  are
	  being set are ignored.

	* Requests  to	clear  all execute bits also clear the set-user-ID-on-
	  execution and set-group-ID-on-execution bits.

	* Requests to clear the set-user-ID-on-execution  or  set-group-ID-on-
	  execution  bits  when	 all  execute  bits  are  currently  clear are
	  ignored. However, if the command ls -l file writes an s in the posi‐
	  tion	indicating  that the set-user-ID-on-execution or set-group-ID-
	  on-execution is set, the commands chmod u-s file or chmod g-s	 file,
	  respectively, shall not be ignored.

       When  using the symbolic mode form on other file types, it is implemen‐
       tation-defined whether or not requests to set or clear the set-user-ID-
       on-execution or set-group-ID-on-execution bits are honored.

       If  the who symbol o is used in conjunction with the perm symbol s with
       no other who symbols being specified, the set-user-ID-on-execution  and
       set-group-ID-on-execution  bits	shall not be modified. It shall not be
       an error to specify the who symbol o in conjunction with the perm  sym‐
       bol s.

       The  perm symbol t shall specify the S_ISVTX bit. When used with a file
       of type directory, it can be used with the who symbol a, or with no who
       symbol.	It shall not be an error to specify a who symbol of u, g, or o
       in conjunction with the perm symbol t, but the meaning of these	combi‐
       nations	is  unspecified.  The effect when using the perm symbol t with
       any file type other than directory is unspecified.

       For an octal integer mode operand, the file  mode  bits	shall  be  set
       absolutely.

       For each bit set in the octal number, the corresponding file permission
       bit shown in the following table shall be set; all other	 file  permis‐
       sion  bits shall be cleared. For regular files, for each bit set in the
       octal number corresponding to the set-user-ID-on-execution or the  set-
       group-ID-on-execution,  bits shown in the following table shall be set;
       if these bits are not set in the octal number, they  are	 cleared.  For
       other  file types, it is implementation-defined whether or not requests
       to set or clear the set-user-ID-on-execution or	set-group-ID-on-execu‐
       tion bits are honored.

	     Octal Mode Bit Octal Mode Bit Octal Mode Bit Octal Mode Bit
	     4000  S_ISUID  0400  S_IRUSR  0040	 S_IRGRP  0004	S_IROTH
	     2000  S_ISGID  0200  S_IWUSR  0020	 S_IWGRP  0002	S_IWOTH
	     1000  S_ISVTX  0100  S_IXUSR  0010	 S_IXGRP  0001	S_IXOTH

       When  bits  are	set in the octal number other than those listed in the
       table above, the behavior is unspecified.

   Grammar for chmod
       The grammar and lexical conventions in this section describe the syntax
       for  the	 symbolic_mode operand. The general conventions for this style
       of grammar are described in Grammar Conventions . A valid symbolic_mode
       can  be	represented  as	 the  non-terminal symbol symbolic_mode in the
       grammar. This formal syntax shall take precedence  over	the  preceding
       text syntax description.

       The  lexical  processing is based entirely on single characters. Imple‐
       mentations need not allow <blank>s within  the  single  argument	 being
       processed.

	      %start	symbolic_mode
	      %%

	      symbolic_mode    : clause
			       | symbolic_mode ',' clause
			       ;

	      clause	       : actionlist
			       | wholist actionlist
			       ;

	      wholist	       : who
			       | wholist who
			       ;

	      who	       : 'u' | 'g' | 'o' | 'a'
			       ;

	      actionlist       : action
			       | actionlist action
			       ;

	      action	       : op
			       | op permlist
			       | op permcopy
			       ;

	      permcopy	       : 'u' | 'g' | 'o'
			       ;

	      op	       : '+' | '-' | '='
			       ;

	      permlist	       : perm
			       | perm permlist
			       ;

	      perm	       : 'r' | 'w' | 'x' | 'X' | 's' | 't'
			       ;

EXIT STATUS
       The following exit values shall be returned:

	0     The utility executed successfully and all requested changes were
	      made.

       >0     An error occurred.

CONSEQUENCES OF ERRORS
       Default.

       The following sections are informative.

APPLICATION USAGE
       Some implementations of the chmod utility change the mode of  a	direc‐
       tory before the files in the directory when performing a recursive ( -R
       option) change; others change the directory mode after the files in the
       directory.  If an application tries to remove read or search permission
       for a file hierarchy, the removal attempt fails	if  the	 directory  is
       changed	first; on the other hand, trying to re-enable permissions to a
       restricted hierarchy fails  if  directories  are	 changed  last.	 Users
       should not try to make a hierarchy inaccessible to themselves.

       Some implementations of chmod never used the process' umask when chang‐
       ing modes; systems conformant with this volume of  IEEE Std 1003.1-2001
       do so when who is not specified. Note the difference between:

	      chmod a-w file

       which removes all write permissions, and:

	      chmod -- -w file

       which  removes write permissions that would be allowed if file was cre‐
       ated with the same umask.

       Conforming applications should never assume that they know how the set-
       user-ID and set-group-ID bits on directories are interpreted.

EXAMPLES
		  Mode	  Results
		  a+=	  Equivalent to a+, a=; clears all file
			  mode bits.
		  go+-w	  Equivalent to go+, go- w; clears group
			  and other write bits.
		  g=o-w	  Equivalent to g= o, g- w; sets group bit
			  to match other bits and then clears
			  group write bit.
		  g-r+w	  Equivalent to g- r, g+ w; clears group
			  read bit and sets group write bit.
		  uo=g	  Sets owner bits to match group bits and
			  sets other bits to match group bits.

RATIONALE
       The  functionality  of  chmod is described substantially through refer‐
       ences  to  concepts  defined  in	 the  System  Interfaces   volume   of
       IEEE Std 1003.1-2001.  In this way, there is less duplication of effort
       required for describing the interactions of permissions.	 However,  the
       behavior of this utility is not described in terms of the chmod() func‐
       tion from the System Interfaces volume of IEEE Std 1003.1-2001  because
       that  specification  requires  certain side effects upon alternate file
       access control mechanisms that might not be appropriate,	 depending  on
       the implementation.

       Implementations that support mandatory file and record locking as spec‐
       ified by the 1984 /usr/group standard historically used the combination
       of  set-group-ID bit set and group execute bit clear to indicate manda‐
       tory locking. This condition is usually set or cleared  with  the  sym‐
       bolic  mode  perm  symbol l instead of the perm symbols s and x so that
       the mandatory locking mode is not changed without  explicit  indication
       that that was what the user intended. Therefore, the details on how the
       implementation treats these conditions must be defined in the  documen‐
       tation.	This volume of IEEE Std 1003.1-2001 does not require mandatory
       locking	  (nor	  does	  the	 System	   Interfaces	 volume	    of
       IEEE Std 1003.1-2001), but does allow it as an extension. However, this
       volume of IEEE Std 1003.1-2001 does require that the ls and chmod util‐
       ities  work consistently in this area. If ls -l file indicates that the
       set-group-ID bit is set, chmod g-s file must clear it (assuming	appro‐
       priate privileges exist to change modes).

       The  System  V  and  BSD versions use different exit status codes. Some
       implementations used the exit status as a count of the number of errors
       that  occurred;	this  practice is unworkable since it can overflow the
       range of valid exit status values. This	problem	 is  avoided  here  by
       specifying only 0 and >0 as exit values.

       The  System  Interfaces	volume	of IEEE Std 1003.1-2001 indicates that
       implementation-defined restrictions may cause the S_ISUID  and  S_ISGID
       bits  to	 be  ignored.  This  volume of IEEE Std 1003.1-2001 allows the
       chmod utility to choose to modify these bits before calling chmod() (or
       some function providing equivalent capabilities) for non-regular files.
       Among other things, this allows implementations that use the  set-user-
       ID  and set-group-ID bits on directories to enable extended features to
       handle these extensions in an intelligent manner.

       The X perm symbol was adopted from BSD-based systems  because  it  pro‐
       vides  commonly desired functionality when doing recursive ( -R option)
       modifications. Similar functionality is not provided by the find	 util‐
       ity.  Historical	 BSD versions of chmod, however, only supported X with
       op+; it has  been  extended  in	this  volume  of  IEEE Std 1003.1-2001
       because	it  is	also  useful with op=. (It has also been added for op-
       even though it duplicates x, in this case, because it is intuitive  and
       easier to explain.)

       The  grammar  was extended with the permcopy non-terminal to allow his‐
       torical-practice forms of symbolic modes like o= u -g (that is, set the
       "other" permissions to the permissions of "owner" minus the permissions
       of "group").

FUTURE DIRECTIONS
       None.

SEE ALSO
       ls , umask , the	 System	 Interfaces  volume  of	 IEEE Std 1003.1-2001,
       chmod()

COPYRIGHT
       Portions	 of  this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
       --  Portable  Operating	System	Interface (POSIX), The Open Group Base
       Specifications Issue 6, Copyright (C) 2001-2003	by  the	 Institute  of
       Electrical  and	Electronics  Engineers, Inc and The Open Group. In the
       event of any discrepancy between this version and the original IEEE and
       The  Open Group Standard, the original IEEE and The Open Group Standard
       is the referee document. The original Standard can be  obtained	online
       at http://www.opengroup.org/unix/online.html .

IEEE/The Open Group		     2003			      CHMOD(P)
[top]

List of man pages available for CentOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net