HPUX fchown[2]

chown(2) chown(2)
NAME
chown, fchown - change owner and group of a file
SYNOPSIS
#include <unistd.h>
int chown(const char *path, uid_t owner, gid_t group);
int fchown(int fildes, uid_t owner, gid_t group);
DESCRIPTION
chown() changes the user and group ownership of a file. path points
to a path name naming a file. fildes is a file descriptor. chown()
and fchown() set the owner ID and group ID of the file to the numeric
values contained in owner and group respectively. A value of
UID_NO_CHANGE or GID_NO_CHANGE can be specified in owner or group to
leave unchanged the file's owner ID or group ID respectively. Note
that owner and group should be less than UID_MAX (see limits(5)).
Only processes with effective user ID equal to the file owner or a
user having appropriate privileges can change the ownership of a file.
If privilege groups are supported, the owner of a file can change the
ownership only if he is a member of a privilege group allowing CHOWN,
as set up by the setprivgrp command (see setprivgrp(1M)). All users
get CHOWN privileges by default.
The group ownership of a file can be changed to any group in the
current process's access list or to the real or effective group ID of
the current process. If privilege groups are supported and the user
is permitted the CHOWN privilege, the file can be given to any group.
If chown() is invoked on a regular file by other than the super-user
the set-user-ID and set-group-ID bits of the file mode are cleared.
Whether chown() preserves or clears these bits on files of other types
is implementation dependent.
Access Control Lists (ACLs)
A user can allow or deny specific individuals and groups access to a
file by using the file's access control list (see acl(5)). When using
chown() in conjunction with ACLs, if the new owner and/or group does
not have an optional ACL entry corresponding to u.% and/or %.g in the
file's access control list, the file's access permission bits remain
unchanged. However, if the new owner and/or group is already
designated by an optional ACL entry of u.% and/or %.g, chown() sets
the file's permission bits (and the three basic ACL entries) to the
permissions contained in that entry.
ERRORS
chown() fails and the owner and group of the file remain unchanged if
one or more of the following is true:
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
chown(2) chown(2)
[EBADF] fildes is not a valid file descriptor.
[ENOTDIR] A component of the path prefix is not a directory.
[ENOENT] The file named by path does not exist.
[EACCES] Search permission is denied on a component of the path
prefix.
[EPERM] The effective user ID is not a user having appropriate
privileges and one or more of the following conditions
exist:
The effective user ID does not match the owner of the
file.
When changing the owner of the file, the owner of the
file is not a member of a privilege group allowing the
CHOWN privilege.
When changing the group of the file, the owner of the
file is not a member of a privilege group allowing the
CHOWN privilege and the group number is not in the
current process's access list.
[EROFS] The named file resides on a read-only file system.
[EFAULT] path points outside the allocated address space of the
process. The reliable detection of this error will be
implementation dependent.
[ENAMETOOLONG] A component of path exceeds NAME_MAX bytes while
_POSIX_NO_TRUNC is in effect, or path exceeds PATH_MAX
bytes.
[ELOOP] Too many symbolic links were encountered in translating
path.
[EINVAL] Either owner or group is greater than or equal to
UID_MAX.
DEPENDENCIES
Series 300, 400, and 700:
If the path given to chown() contains a symbolic link as the last
element, this link is traversed and pathname resolution continues.
chown() changes the owner and group of the symbolic link's target,
rather than the owner and group of the link.
HP Clustered Environment:
chown() does not clear the set-user-ID bit of a directory because that
bit indicates that the directory is hidden (see cdf(4)).
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
chown(2) chown(2)
When chown() is called from a cluster client node, the privilege
groups checked are the ones set up on the cluster server.
RETURN VALUE
Upon successful completion, a value of 0 is returned. Otherwise, a
value of -1 is returned and errno is set to indicate the error.
WARNINGS
Access Control Lists
Access control list descriptions in this entry apply only to standard
HP-UX operating systems. If HP-UX BLS software has been installed,
access control lists are handled differently. Refer to HP-UX BLS
documentation for information about access control lists in the HP-UX
BLS environment.
AUTHOR
chown() was developed by AT&T.
fchown() was developed by the University of California, Berkeley.
SEE ALSO
chown(1), setprivgrp(1M), chmod(2), setacl(2), acl(5), limits(5),
limits(5).
STANDARDS CONFORMANCE
chown(): AES [Series 300/400/700 only], SVID2, XPG2, XPG3, XPG4, FIPS
151-2, POSIX.1
fchown(): AES
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992