]> git.saurik.com Git - apple/xnu.git/blame - bsd/man/man2/chown.2
xnu-4903.270.47.tar.gz
[apple/xnu.git] / bsd / man / man2 / chown.2
CommitLineData
9bccf70c
A
1.\" Copyright (c) 1980, 1991, 1993, 1994
2.\" The Regents of the University of California. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\" notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\" notice, this list of conditions and the following disclaimer in the
11.\" documentation and/or other materials provided with the distribution.
12.\" 3. All advertising materials mentioning features or use of this software
13.\" must display the following acknowledgement:
14.\" This product includes software developed by the University of
15.\" California, Berkeley and its contributors.
16.\" 4. Neither the name of the University nor the names of its contributors
17.\" may be used to endorse or promote products derived from this software
18.\" without specific prior written permission.
19.\"
20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30.\" SUCH DAMAGE.
31.\"
32.\" @(#)chown.2 8.4 (Berkeley) 4/19/94
33.\"
91447636 34.Dd April 19, 1994
9bccf70c
A
35.Dt CHOWN 2
36.Os
37.Sh NAME
38.Nm chown ,
91447636 39.Nm fchown ,
fe8ab488
A
40.Nm lchown ,
41.Nm fchownat
91447636 42.Nd change owner and group of a file
9bccf70c 43.Sh SYNOPSIS
91447636 44.In unistd.h
9bccf70c 45.Ft int
2d21ac55
A
46.Fo chown
47.Fa "const char *path"
48.Fa "uid_t owner"
49.Fa "gid_t group"
50.Fc
9bccf70c 51.Ft int
2d21ac55
A
52.Fo fchown
53.Fa "int fildes"
54.Fa "uid_t owner"
55.Fa "gid_t group"
56.Fc
91447636 57.Ft int
2d21ac55
A
58.Fo lchown
59.Fa "const char *path"
60.Fa "uid_t owner"
61.Fa "gid_t group"
62.Fc
fe8ab488
A
63.Ft int
64.Fn fchownat "int fd" "const char *path" "uid_t owner" "gid_t group" "int flag"
9bccf70c 65.Sh DESCRIPTION
91447636 66The owner ID and group ID of the file
9bccf70c
A
67named by
68.Fa path
69or referenced by
2d21ac55 70.Fa fildes
9bccf70c
A
71is changed as specified by the arguments
72.Fa owner
91447636 73and
9bccf70c
A
74.Fa group .
75The owner of a file may change the
76.Fa group
77to a group of which
78he or she is a member,
79but the change
80.Fa owner
81capability is restricted to the super-user.
82.Pp
91447636
A
83The
84.Fn chown
39037602 85system call clears the set-user-id and set-group-id bits on the file.
91447636
A
86The
87.Fn chown
88system call
89follows symbolic links to operate on the target of the link
90rather than the link itself.
9bccf70c 91.Pp
91447636
A
92The
93.Fn fchown
94system call
9bccf70c
A
95is particularly useful when used in conjunction
96with the file locking primitives (see
97.Xr flock 2 ) .
98.Pp
91447636
A
99The
100.Fn lchown
101system call is similar to
102.Fn chown
103but does not follow symbolic links.
104.Pp
fe8ab488
A
105The
106.Fn fchownat
107system call is equivalent to the
108.Fn chown
109and
110.Fn lchown
111except in the case where
112.Fa path
113specifies a relative path.
114In this case the file to be changed is determined relative to the directory
115associated with the file descriptor
116.Fa fd
117instead of the current working directory.
118.Pp
119Values for
120.Fa flag
121are constructed by a bitwise-inclusive OR of flags from the following
122list, defined in
123.In fcntl.h :
124.Bl -tag -width indent
125.It Dv AT_SYMLINK_NOFOLLOW
126If
127.Fa path
128names a symbolic link, ownership of the symbolic link is changed.
129.El
130.Pp
131If
132.Fn fchownat
133is passed the special value
134.Dv AT_FDCWD
135in the
136.Fa fd
137parameter, the current working directory is used and the behavior is identical
138to a call to
139.Fn chown
140or
141.Fn lchown
142respectively, depending on whether or not the
143.Dv AT_SYMLINK_NOFOLLOW
144bit is set in the
145.Fa flag
146argument.
147.Pp
9bccf70c
A
148One of the owner or group id's
149may be left unchanged by specifying it as -1.
150.Sh RETURN VALUES
91447636 151.Rv -std
9bccf70c 152.Sh ERRORS
2d21ac55 153.Pp
91447636
A
154The
155.Fn chown
156and
157.Fn lchown
2d21ac55 158system calls will fail if:
9bccf70c 159.Bl -tag -width Er
2d21ac55 160.\" ==========
9bccf70c
A
161.It Bq Er EACCES
162Search permission is denied for a component of the path prefix.
9bccf70c 163.It Bq Er EFAULT
91447636
A
164The
165.Fa path
166argument
9bccf70c 167points outside the process's allocated address space.
2d21ac55
A
168.\" ==========
169.It Bq Er ELOOP
170Too many symbolic links are encountered in translating the pathname.
171This is taken to be indicative of a looping symbolic link.
172.\" ==========
173.It Bq Er ENAMETOOLONG
174A component of a pathname exceeded 255 characters,
175or an entire path name exceeded 1023 characters.
176.\" ==========
177.It Bq Er ENOENT
178A component of
179.Fa path
180does not exist.
181.\" ==========
182.It Bq Er ENOTDIR
183A component of the path prefix is not a directory.
9bccf70c
A
184.El
185.Pp
91447636
A
186The
187.Fn fchown
188system call will fail if:
9bccf70c 189.Bl -tag -width Er
2d21ac55 190.\" ==========
9bccf70c 191.It Bq Er EBADF
91447636 192The
2d21ac55 193.Fa fildes
91447636 194argument
9bccf70c 195does not refer to a valid descriptor.
2d21ac55 196.\" ==========
9bccf70c 197.It Bq Er EINVAL
91447636 198The
2d21ac55 199.Fa fildes
91447636 200argument
9bccf70c 201refers to a socket, not a file.
2d21ac55
A
202.El
203.Pp
204Any of these calls will fail if:
205.Bl -tag -width Er
206.\" ==========
207.It Bq Er EINTR
208Its execution is interrupted by a signal.
209.\" ==========
210.It Bq Er EIO
211An I/O error occurs while reading from or writing to the file system.
212.\" ==========
9bccf70c 213.It Bq Er EPERM
2d21ac55
A
214The effective user ID does not match the owner of the file
215and the calling process does not have appropriate (i.e., root) privileges.
216.\" ==========
9bccf70c
A
217.It Bq Er EROFS
218The named file resides on a read-only file system.
9bccf70c 219.El
fe8ab488
A
220.Pp
221In addition to the errors specified for
222.Fn chown
223and
224.Fn lchown ,
225the
226.Fn fchownat
227system call may fail if:
228.Bl -tag -width Er
229.It Bq Er EBADF
230The
231.Fa path
232argument does not specify an absolute path and the
233.Fa fd
234argument is neither
235.Dv AT_FDCWD
236nor a valid file descriptor open for searching.
237.It Bq Er EINVAL
238The value of the
239.Fa flag
240argument is not valid.
241.It Bq Er ENOTDIR
242The
243.Fa path
244argument is not an absolute path and
245.Fa fd
246is neither
247.Dv AT_FDCWD
248nor a file descriptor associated with a directory.
249.El
9bccf70c 250.Sh SEE ALSO
9bccf70c
A
251.Xr chgrp 1 ,
252.Xr chmod 2 ,
91447636
A
253.Xr flock 2 ,
254.Xr chown 8
9bccf70c
A
255.Sh STANDARDS
256The
257.Fn chown
91447636
A
258system call is expected to conform to
259.St -p1003.1-90 .
fe8ab488
A
260The
261.Fn fchownat
262system call is expected to conform to POSIX.1-2008 .
9bccf70c
A
263.Sh HISTORY
264The
91447636
A
265.Fn chown
266function appeared in
267.At v7 .
268The
9bccf70c 269.Fn fchown
91447636 270system call appeared in
9bccf70c
A
271.Bx 4.2 .
272.Pp
273The
274.Fn chown
275and
276.Fn fchown
91447636 277system calls were changed to follow symbolic links in
9bccf70c 278.Bx 4.4 .
91447636
A
279The
280.Fn lchown
281system call was added in
282.Fx 3.0
283to compensate for the loss of functionality.
fe8ab488
A
284.Pp
285The
286.Fn fchownat
287system call appeared in OS X 10.10