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