The chgrp utility shall set the group ID of the file named by each
file operand to the group ID specified by the group operand.
For each file operand, or, if the -R option is used, each file
encountered while walking the directory trees specified by the file
operands, the chgrp utility shall perform actions equivalent to the
chown() function defined in the System Interfaces volume of
IEEE Std 1003.1-2001, called with the following arguments:
The file operand shall be used as the path
The user ID of the file shall be used as the owner
The specified group ID shall be used as the group
Unless chgrp is invoked by a process with appropriate privileges, the
set-user-ID and set-group-ID bits of a regular file shall be cleared upon
successful completion; the set-user-ID and set-group-ID bits of other file
types may be cleared.
The chgrp utility shall conform to the Base Definitions volume of
IEEE Std 1003.1-2001, Section 12.2, Utility Syntax Guidelines.
The following options shall be supported by the implementation:
If the system supports group IDs for symbolic links, for
each file operand that names a file of type symbolic link,
chgrp shall attempt to set the group ID of the symbolic link
instead of the file referenced by the symbolic link. If the system does
not support group IDs for symbolic links, for each file operand
that names a file of type symbolic link, chgrp shall do nothing
more with the current file and shall go on to any remaining files.
If the -R option is specified and a symbolic link
referencing a file of type directory is specified on the command line,
chgrp shall change the group of the directory referenced by the
symbolic link and all files in the file hierarchy below it.
If the -R option is specified and a symbolic link
referencing a file of type directory is specified on the command line or
encountered during the traversal of a file hierarchy, chgrp shall
change the group of the directory referenced by the symbolic link and all
files in the file hierarchy below it.
If the -R option is specified and a symbolic link is
specified on the command line or encountered during the traversal of a
file hierarchy, chgrp shall change the group ID of the symbolic
link if the system supports this operation. The chgrp utility shall
not follow the symbolic link to any other part of the file hierarchy.
Recursively change file group IDs. For each file
operand that names a directory, chgrp shall change the group of the
directory and all files in the file hierarchy below it. Unless a
-H, -L, or -P option is specified, it is unspecified
which of these options will be used as the default.
Specifying more than one of the mutually-exclusive options -H, -L,
and -P shall not be considered an error. The last option specified
shall determine the behavior of the utility.
A group name from the group database or a numeric group ID.
Either specifies a group ID to be given to each file named by one of the
file operands. If a numeric group operand exists in the
group database as a group name, the group ID number associated with that
group name is used as the group ID.
A pathname of a file whose group ID is to be modified.
The following environment variables shall affect the execution of chgrp:
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
Variables for the precedence of internationalization variables used to
determine the values of locale categories.)
If set to a non-empty string value, override the values of
all the other internationalization variables.
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).
Determine the locale that should be used to affect the
format and contents of diagnostic messages written to standard error.
Determine the location of message catalogs for the
processing of LC_MESSAGES.
Only the owner of a file or the user with appropriate privileges may change the
owner or group of a file.
Some implementations restrict the use of chgrp to a user with appropriate
privileges when the group specified is not the effective group ID or
one of the supplementary group IDs of the calling process.
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. The standard developers chose to mask these by specifying
only 0 and >0 as exit values.
The functionality of chgrp is described substantially through references
to chown(). In this way, there is no duplication of effort required for
describing the interactions of permissions, multiple groups, and so on.
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