chown - change owner and group of a file
int chown(const char *path, int owner, int group)
The file that is named by path has its owner and group changed as
specified. Only the super-user may change the owner of the file, because
if users were able to give files away, they could defeat file-space
accounting procedures. The owner of the file may change the group to a
group of which he is a member.
On some systems, chown clears the set-user-id and set-group-id bits on
the file to prevent accidental creation of set-user-id and set-group-id
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
Chown will fail and the file will be unchanged if:
[ENOTDIR] A component of the path prefix is not a directory.
[ENAMETOOLONG] The path name exceeds PATH_MAX characters.
[ENOENT] The named file does not exist.
[EACCES] Search permission is denied for a component of the path
[ELOOP] Too many symbolic links were encountered in translating
the pathname. (Minix-vmd)
[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
chown(8), chgrp(1), chmod(2).