CHOWN(2) BSD Programmer's Manual CHOWN(2)NAME
chown, fchown - change owner and group of a file
SYNOPSIS
#include <sys/types.h>
#include <unistd.h>
int
chown(const char *path, uid_t owner, gid_t group);
int
fchown(int fd, uid_t owner, gid_t group);
DESCRIPTION
The owner ID and group ID of the file named by path or referenced by fd
is changed as specified by the arguments owner and group. The owner of a
file may change the group to a group of which he or she is a member, but
the change owner capability is restricted to the super-user.
Chown() clears the set-user-id and set-group-id bits on the file to pre-
vent accidental or mischievous creation of set-user-id and set-group-id
programs.
Fchown() is particularly useful when used in conjunction with the file
locking primitives (see flock(2)).
One of the owner or group id's may be left unchanged by specifying it as
-1.
RETURN VALUES
Zero is returned if the operation was successful; -1 is returned if an
error occurs, with a more specific error code being placed in the global
variable errno.
ERRORSChown() will fail and the file will be unchanged if:
[ENOTDIR] A component of the path prefix is not a directory.
[EINVAL] The pathname contains a character with the high-order bit
set.
[ENAMETOOLONG]
A component of a pathname exceeded 255 characters, or an
entire path name exceeded 1023 characters.
[ENOENT] The named file does not exist.
[EACCES] Search permission is denied for a component of the path
prefix.
[ELOOP] Too many symbolic links were encountered in translating the
pathname.
[EPERM] The effective user ID is not the super-user.
[EROFS] The named file resides on a read-only file system.
[EFAULT] Path points outside the process's allocated address space.
[EIO] An I/O error occurred while reading from or writing to the
file system.
Fchown() will fail if:
[EBADF] Fd does not refer to a valid descriptor.
[EINVAL] Fd refers to a socket, not a file.
[EPERM] The effective user ID is not the super-user.
[EROFS] The named file resides on a read-only file system.
[EIO] An I/O error occurred while reading from or writing to the
file system.
SEE ALSOchown(8), chgrp(1), chmod(2), flock(2)STANDARDSChown() is expected to conform to IEEE Std 1003.1-1988 (``POSIX'').
HISTORY
The fchown() function call appeared in 4.2BSD.
The chown() and fchown() functions were changed to follow symbolic links
in 4.4BSD.
4th Berkeley Distribution April 19, 1994 2