Provided by: libdpm-dev_1.8.7-3_amd64 bug

NAME

       dpns_chown - change owner and group of a DPNS directory/file in the name server

SYNOPSIS

       #include <sys/types.h>
       #include "dpns_api.h"

       int dpns_chown (const char *path, uid_t new_uid, gid_t new_gid)

       int dpns_lchown (const char *path, uid_t new_uid, gid_t new_gid)

DESCRIPTION

       dpns_chown sets the owner and the group of a DPNS directory/file in the name server to the numeric values
       in owner and group respectively.  If owner or group is specified as -1, dpns_chown() does not change  the
       corresponding ID of the file.

       dpns_lchown is identical to dpns_chown except for symbolic links: it does not follow the link but changes
       the ownership of the link itself.

       path   specifies the logical pathname relative to the current DPNS directory or the full DPNS pathname.

       To change the owner ID, if the group ID does not change and if the caller and the new owner ID belong  to
       that  group,  GRP_ADMIN  privilege  is needed, otherwise the caller must have ADMIN privilege in the Cupv
       database.  To change the group ID, the effective user ID of the process must match the owner  ID  of  the
       file  and  the new group must be in the list of groups the caller belong to or the caller must have ADMIN
       privilege in the Cupv database.

RETURN VALUE

       This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case,
       serrno is set appropriately.

ERRORS

       EPERM        The  effective  user  ID  does  not match the owner of the file and the caller does not have
                    ADMIN privilege in the Cupv database.

       ENOENT       The named file/directory does not exist or is a null pathname.

       EACCES       Search permission is denied on a component of the path prefix.

       EFAULT       path is a NULL pointer.

       ENOTDIR      A component of path prefix is not a directory.

       EINVAL       new_uid or new_gid is invalid.

       ENAMETOOLONG The length of path  exceeds  CA_MAXPATHLEN  or  the  length  of  a  path  component  exceeds
                    CA_MAXNAMELEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.

SEE ALSO

       Castor_limits(4), dpns_chdir(3), Cupvlist(1)

AUTHOR

       LCG Grid Deployment Team