CHOWN(2)

NAME
chown, fchown - change ownership 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 of the file specified by path or by fd is changed. Only the super-user may change the owner of a file. The owner of a file may change the group of the file to any group of which that owner is a member. The super-user may change the group arbitrarily. If the owner or group is specified as -1, then that ID is not changed.

RETURN VALUE
On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

ERRORS
Depending on the file system, other errors can be returned. The more general errors for chown are listed below:

EPERM
    The effective UID does not match the owner of the file, and is not zero; or the owner or group were specified incorrectly.

EROFS
    The named file resides on a read-only file system.

EFAULT
    path points outside your accessible address space.

ENAMETOOLONG
    path is too long.

ENOENT
    The file does not exist.

ENOMEM
    Insufficient kernel memory was available.

ENOTDIR
    A component of the path prefix is not a directory.

EACCES
    Search permission is denied on a component of the path prefix.

ELOOP
    path contains a circular reference (i.e., via a symbolic link)

The general errors for fchown are listed below:

EBADF
    The descriptor is not value.

ENOENT
    See above.

EPERM
    See above.

EROFS
    See above.

NOTES
The prototype for fchown is only available if __USE_BSD is defined.

SEE ALSO
chmod(2), flock(2)