CHOWN(2)                      System Calls Manual                     CHOWN(2)

NAME
     chown, fchown - change owner and group of a file or link

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 (or link) named by path or refer-
     enced 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.

ERRORS
     Chown() will fail and the file or link will be unchanged if:

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

     [ENAMETOOLONG]     A component of a pathname exceeded {NAME_MAX} charac-
                        ters, or an entire path name exceeded {PATH_MAX} char-
                        acters.

     [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 translat-
                        ing 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]            does not refer to a valid descriptor.

     [EINVAL]           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 ALSO
     chown(8), chgrp(1), chmod(2), flock(2)

STANDARDS
     The chown() function is expected to conform to IEEE Std 1003.1-1988
     (``POSIX.1'').

HISTORY
     The fchown() function call appeared in 4.2BSD.

     The chown() and fchown() functions were changed to follow symbolic links
     in 4.4BSD.

BSD                            January 25, 1997                            BSD