HP-UX Reference (11i v1 00/12) - 2 System Calls (vol 5)

__________________________________________________________________________________________________________________________________________________________________________________________________
__________________________________________________________________________________________________________________________________________________________________________________________________
STANDARD Printed by: Nora Chuang [nchuang] STANDARD
/build/1111/BRICK/man2/!!!intro.2
________________________________________________________________
___ ___
c
chown(2) chown(2)
NAME
chown(), fchown(), lchown() - change owner and group of a file
SYNOPSIS
#include <unistd.h>
int chown(const char *path, uid_t owner, gid_t group);
int lchown(const char *path, uid_t owner, gid_t group);
int fchown(int fildes, uid_t owner, gid_t group);
DESCRIPTION
The chown() system call changes the user and group ownership of a file. path points to the path name of
a file. chown() sets the owner ID and group ID of the le 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 an 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 owner-
ship only as a member of a privilege group allowing CHOWN, as set up by the
setprivgrp command
(see setprivgrp(1M)). All users get the CHOWN privilege by default.
The group ownership of a file can be changed to any group in the current processs access list or to the real
or effective group ID of the current process. If privilege groups are supported and the user has the
CHOWN privilege, the file can be given to any group.
If
chown() is invoked on a regular file by anyone other than the superuser, 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.
If the path given to chown() contains a symbolic link as the last element, this link is traversed and path
name resolution continues. chown() changes the owner and group of the symbolic link’s target, rather
than the owner and group of the link.
The fchown() system call functions exactly like chown(), except that it operates on a file descriptor
instead of a path name. fildes is a file descriptor.
The lchown() system call sets the owner ID and group ID of the named file just as
chown() does,
except in the case where the named file is a symbolic link. In this case,
lchown() changes the owner and
group of the symbolic link file itself.
Access Control Lists - HFS File Systems Only
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 HFS ACLs, if the new owner and/or group does not
have an optional ACL entry corresponding to user.% and/or %.group in the files access control list, the
file’s access permission bits remain unchanged. However, if the new owner and/or group is already desig-
nated by an optional ACL entry of user.% and/or %.group, chown() sets the file’s permission bits (and
the three basic ACL entries) to the permissions contained in that entry.
Access Control Lists - JFS File Systems Only
A user can allow or deny specific individuals and groups access to a file by using the file’s access control list
(see aclv(5)). When using chown() in conjunction with JFS ACLs, if the new owner and/or group of a file
have optional ACL entries corresponding to
user:uid:perm and/or group:gid:perm in the file’s access
control list, those entries remain in the ACL but no longer have any effect, being superseded by the file’s
user::perm and/or group::perm entries.
RETURN VALUE
chown() and fchown() return the following values:
0 Successful completion.
-1 Failure. The owner and group of the file remain unchanged. errno is set to indicate the error.
ERRORS
If chown() or fchown() fails, errno is set to one of the following values:
Section 232 1 HP-UX Release 11i: December 2000
___
___