Files
oldlinux-files/study/Ref-docs/POSIX/susv3/utilities/chown.html
2024-02-19 00:25:23 -05:00

338 lines
13 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 -->
<!-- Copyright (c) 2001 The Open Group, All Rights Reserved -->
<title>chown</title>
</head>
<body bgcolor="white">
<script type="text/javascript" language="JavaScript" src="../jscript/codes.js">
</script>
<basefont size="3"> <a name="chown"></a> <a name="tag_04_19"></a><!-- chown -->
<!--header start-->
<center><font size="2">The Open Group Base Specifications Issue 6<br>
IEEE Std 1003.1-2001<br>
Copyright &copy; 2001 The IEEE and The Open Group, All Rights reserved.</font></center>
<!--header end-->
<hr size="2" noshade>
<h4><a name="tag_04_19_01"></a>NAME</h4>
<blockquote>chown - change the file ownership</blockquote>
<h4><a name="tag_04_19_02"></a>SYNOPSIS</h4>
<blockquote class="synopsis">
<p><code><tt>chown -hR</tt> <i>owner</i><b>[</b><tt>:</tt><i>group</i><b>]</b> <i>file</i> <tt>...<br>
<br>
chown -R</tt> <b>[</b><tt>-H | -L | -P</tt> <b>]</b> <i>owner</i><b>[</b><tt>:</tt><i>group</i><b>]</b> <i>file</i> <tt>...<br>
</tt></code></p>
</blockquote>
<h4><a name="tag_04_19_03"></a>DESCRIPTION</h4>
<blockquote>
<p>The <i>chown</i> utility shall set the user ID of the file named by each <i>file</i> operand to the user ID specified by the
<i>owner</i> operand.</p>
<p>For each <i>file</i> operand, or, if the <b>-R</b> option is used, each file encountered while walking the directory trees
specified by the <i>file</i> operands, the <i>chown</i> utility shall perform actions equivalent to the <a href=
"../functions/chown.html"><i>chown</i>()</a> function defined in the System Interfaces volume of IEEE&nbsp;Std&nbsp;1003.1-2001,
called with the following arguments:</p>
<ol>
<li>
<p>The <i>file</i> operand shall be used as the <i>path</i> argument.</p>
</li>
<li>
<p>The user ID indicated by the <i>owner</i> portion of the first operand shall be used as the <i>owner</i> argument.</p>
</li>
<li>
<p>If the <i>group</i> portion of the first operand is given, the group ID indicated by it shall be used as the <i>group</i>
argument; otherwise, the group ownership shall not be changed.</p>
</li>
</ol>
<p>Unless <i>chown</i> 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.</p>
</blockquote>
<h4><a name="tag_04_19_04"></a>OPTIONS</h4>
<blockquote>
<p>The <i>chown</i> utility shall conform to the Base Definitions volume of IEEE&nbsp;Std&nbsp;1003.1-2001, <a href=
"../basedefs/xbd_chap12.html#tag_12_02">Section 12.2, Utility Syntax Guidelines</a>.</p>
<p>The following options shall be supported by the implementation:</p>
<dl compact>
<dt><b>-h</b></dt>
<dd>If the system supports user IDs for symbolic links, for each <i>file</i> operand that names a file of type symbolic link,
<i>chown</i> shall attempt to set the user ID of the symbolic link. If the system supports group IDs for symbolic links, and a
group ID was specified, for each <i>file</i> operand that names a file of type symbolic link, <i>chown</i> shall attempt to set the
group ID of the symbolic link. If the system does not support user or group IDs for symbolic links, for each <i>file</i> operand
that names a file of type symbolic link, <i>chown</i> shall do nothing more with the current file and shall go on to any remaining
files.</dd>
<dt><b>-H</b></dt>
<dd>If the <b>-R</b> option is specified and a symbolic link referencing a file of type directory is specified on the command line,
<i>chown</i> shall change the user ID (and group ID, if specified) of the directory referenced by the symbolic link and all files
in the file hierarchy below it.</dd>
<dt><b>-L</b></dt>
<dd>If the <b>-R</b> 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, <i>chown</i> shall change the user ID (and group ID, if specified) of the
directory referenced by the symbolic link and all files in the file hierarchy below it.</dd>
<dt><b>-P</b></dt>
<dd>If the <b>-R</b> option is specified and a symbolic link is specified on the command line or encountered during the traversal
of a file hierarchy, <i>chown</i> shall change the owner ID (and group ID, if specified) of the symbolic link if the system
supports this operation. The <i>chown</i> utility shall not follow the symbolic link to any other part of the file hierarchy.</dd>
<dt><b>-R</b></dt>
<dd>Recursively change file user and group IDs. For each <i>file</i> operand that names a directory, <i>chown</i> shall change the
user ID (and group ID, if specified) of the directory and all files in the file hierarchy below it. Unless a <b>-H</b>, <b>-L</b>,
or <b>-P</b> option is specified, it is unspecified which of these options will be used as the default.</dd>
</dl>
<p>Specifying more than one of the mutually-exclusive options <b>-H</b>, <b>-L</b>, and <b>-P</b> shall not be considered an error.
The last option specified shall determine the behavior of the utility.</p>
</blockquote>
<h4><a name="tag_04_19_05"></a>OPERANDS</h4>
<blockquote>
<p>The following operands shall be supported:</p>
<dl compact>
<dt><i>owner</i><b>[</b>:<i>group</i><b>]</b></dt>
<dd>A user ID and optional group ID to be assigned to <i>file</i>. The <i>owner</i> portion of this operand shall be a user name
from the user database or a numeric user ID. Either specifies a user ID which shall be given to each file named by one of the
<i>file</i> operands. If a numeric <i>owner</i> operand exists in the user database as a user name, the user ID number associated
with that user name shall be used as the user ID. Similarly, if the <i>group</i> portion of this operand is present, it shall be a
group name from the group database or a numeric group ID. Either specifies a group ID which shall be given to each file. If a
numeric group operand exists in the group database as a group name, the group ID number associated with that group name shall be
used as the group ID.</dd>
<dt><i>file</i></dt>
<dd>A pathname of a file whose user ID is to be modified.</dd>
</dl>
</blockquote>
<h4><a name="tag_04_19_06"></a>STDIN</h4>
<blockquote>
<p>Not used.</p>
</blockquote>
<h4><a name="tag_04_19_07"></a>INPUT FILES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_19_08"></a>ENVIRONMENT VARIABLES</h4>
<blockquote>
<p>The following environment variables shall affect the execution of <i>chown</i>:</p>
<dl compact>
<dt><i>LANG</i></dt>
<dd>Provide a default value for the internationalization variables that are unset or null. (See the Base Definitions volume of
IEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/xbd_chap08.html#tag_08_02">Section 8.2, Internationalization Variables</a> for
the precedence of internationalization variables used to determine the values of locale categories.)</dd>
<dt><i>LC_ALL</i></dt>
<dd>If set to a non-empty string value, override the values of all the other internationalization variables.</dd>
<dt><i>LC_CTYPE</i></dt>
<dd>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).</dd>
<dt><i>LC_MESSAGES</i></dt>
<dd>Determine the locale that should be used to affect the format and contents of diagnostic messages written to standard
error.</dd>
<dt><i>NLSPATH</i></dt>
<dd><sup>[<a href="javascript:open_code('XSI')">XSI</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]" border="0">
Determine the location of message catalogs for the processing of <i>LC_MESSAGES .</i> <img src="../images/opt-end.gif" alt=
"[Option End]" border="0"></dd>
</dl>
</blockquote>
<h4><a name="tag_04_19_09"></a>ASYNCHRONOUS EVENTS</h4>
<blockquote>
<p>Default.</p>
</blockquote>
<h4><a name="tag_04_19_10"></a>STDOUT</h4>
<blockquote>
<p>Not used.</p>
</blockquote>
<h4><a name="tag_04_19_11"></a>STDERR</h4>
<blockquote>
<p>The standard error shall be used only for diagnostic messages.</p>
</blockquote>
<h4><a name="tag_04_19_12"></a>OUTPUT FILES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_19_13"></a>EXTENDED DESCRIPTION</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_19_14"></a>EXIT STATUS</h4>
<blockquote>
<p>The following exit values shall be returned:</p>
<dl compact>
<dt>&nbsp;0</dt>
<dd>The utility executed successfully and all requested changes were made.</dd>
<dt>&gt;0</dt>
<dd>An error occurred.</dd>
</dl>
</blockquote>
<h4><a name="tag_04_19_15"></a>CONSEQUENCES OF ERRORS</h4>
<blockquote>
<p>Default.</p>
</blockquote>
<hr>
<div class="box"><em>The following sections are informative.</em></div>
<h4><a name="tag_04_19_16"></a>APPLICATION USAGE</h4>
<blockquote>
<p>Only the owner of a file or the user with appropriate privileges may change the owner or group of a file.</p>
<p>Some implementations restrict the use of <i>chown</i> to a user with appropriate privileges.</p>
</blockquote>
<h4><a name="tag_04_19_17"></a>EXAMPLES</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_19_18"></a>RATIONALE</h4>
<blockquote>
<p>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. These are
masked by specifying only 0 and &gt;0 as exit values.</p>
<p>The functionality of <i>chown</i> is described substantially through references to functions in the System Interfaces volume of
IEEE&nbsp;Std&nbsp;1003.1-2001. In this way, there is no duplication of effort required for describing the interactions of
permissions, multiple groups, and so on.</p>
<p>The 4.3 BSD method of specifying both owner and group was included in this volume of IEEE&nbsp;Std&nbsp;1003.1-2001 because:</p>
<ul>
<li>
<p>There are cases where the desired end condition could not be achieved using the <a href=
"../utilities/chgrp.html"><i>chgrp</i></a> and <i>chown</i> (that only changed the user ID) utilities. (If the current owner is not
a member of the desired group and the desired owner is not a member of the current group, the <a href=
"../functions/chown.html"><i>chown</i>()</a> function could fail unless both owner and group are changed at the same time.)</p>
</li>
<li>
<p>Even if they could be changed independently, in cases where both are being changed, there is a 100% performance penalty caused
by being forced to invoke both utilities.</p>
</li>
</ul>
<p>The BSD syntax <i>user</i>[. <i>group</i>] was changed to <i>user</i>[: <i>group</i>] in this volume of
IEEE&nbsp;Std&nbsp;1003.1-2001 because the period is a valid character in login names (as specified by the Base Definitions volume
of IEEE&nbsp;Std&nbsp;1003.1-2001, login names consist of characters in the portable filename character set). The colon character
was chosen as the replacement for the period character because it would never be allowed as a character in a user name or group
name on historical implementations.</p>
<p>The <b>-R</b> option is considered by some observers as an undesirable departure from the historical UNIX system tools approach;
since a tool, <a href="../utilities/find.html"><i>find</i></a>, already exists to recurse over directories, there seemed to be no
good reason to require other tools to have to duplicate that functionality. However, the <b>-R</b> option was deemed an important
user convenience, is far more efficient than forking a separate process for each element of the directory hierarchy, and is in
widespread historical use.</p>
</blockquote>
<h4><a name="tag_04_19_19"></a>FUTURE DIRECTIONS</h4>
<blockquote>
<p>None.</p>
</blockquote>
<h4><a name="tag_04_19_20"></a>SEE ALSO</h4>
<blockquote>
<p><a href="chmod.html"><i>chmod</i></a> , <a href="chgrp.html"><i>chgrp</i></a> , the System Interfaces volume of
IEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../functions/chown.html"><i>chown</i>()</a></p>
</blockquote>
<h4><a name="tag_04_19_21"></a>CHANGE HISTORY</h4>
<blockquote>
<p>First released in Issue 2.</p>
</blockquote>
<h4><a name="tag_04_19_22"></a>Issue 6</h4>
<blockquote>
<p>New options <b>-h</b>, <b>-H</b>, <b>-L</b>, and <b>-P</b> are added to align with the IEEE&nbsp;P1003.2b draft standard. These
options affect the processing of symbolic links.</p>
<p>The normative text is reworded to avoid use of the term &quot;must&quot; for application requirements.</p>
<p>IEEE PASC Interpretation 1003.2 #172 is applied, changing the CONSEQUENCES OF ERRORS section to &quot;Default.&quot;.</p>
<p>The &quot;otherwise, ...&quot; text in item 3. of the DESCRIPTION is changed to &quot;otherwise, the group ownership shall not be
changed&quot;.</p>
</blockquote>
<div class="box"><em>End of informative text.</em></div>
<hr>
<hr size="2" noshade>
<center><font size="2"><!--footer start-->
UNIX &reg; is a registered Trademark of The Open Group.<br>
POSIX &reg; is a registered Trademark of The IEEE.<br>
[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href=
"../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>
]</font></center>
<!--footer end-->
<hr size="2" noshade>
</body>
</html>