Man Linux: Main Page and Category List

NAME

       lfc_chown  - change owner and group of a LFC directory/file in the name
       server

SYNOPSIS

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

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

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

DESCRIPTION

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

       lfc_lchown is identical to lfc_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  LFC
              directory or the full LFC 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), lfc_chdir(3), Cupvlist(1)

AUTHOR

       LCG Grid Deployment Team