| Linux / Unix Command: chown |
NAME
chown, fchown, lchown - change ownership of a fileSYNOPSIS
#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);
int lchown(const char *path, 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.
When the owner or group of an executable file are changed by a non-super-user, the S_ISUID and S_ISGID mode bits are cleared. POSIX does not specify whether this also should happen when root does the chown; the Linux behaviour depends on the kernel version. In case of a non-group-executable file (with clear S_IXGRP bit) the S_ISGID bit indicates mandatory locking, and is not cleared by a chown.
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
- Too many symbolic links were encountered in resolving path.
The general errors for fchown are listed below:
- EBADF
- The descriptor is not valid.
- ENOENT
- See above.
- EPERM
- See above.
- EROFS
- See above.
- EIO
- A low-level I/O error occurred while modifying the inode.
SEE ALSO
chmod(2), flock(2)
Important: Use the man command (% man) to see how a command is used on your particular computer.

