Man Linux: Main Page and Category List

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