DPNS_CHMOD(3)
NAME
dpns_chmod - change access mode of a DPNS directory/file in the name
server
SYNOPSIS
#include <sys/types.h> #include "dpns_api.h" int dpns_chmod (const char *path, mode_t mode)
DESCRIPTION
dpns_chmod sets the access permission portion of the mode of a DPNS directory/file in the name server to the bit pattern in mode.
- path specifies the logical pathname relative to the current DPNS
- directory or the full DPNS pathname.
- mode is constructed by OR'ing the bits defined in <sys/stat.h> under
- Unix or "statbits.h" under Windows/NT:
- S_ISUID 0004000 set user ID on execution S_ISGID 0002000 set group ID on execution S_ISVTX 0001000 sticky bit S_IRUSR 0000400 read by owner S_IWUSR 0000200 write by owner S_IXUSR 0000100 execute/search by owner S_IRGRP 0000040 read by group S_IWGRP 0000020 write by group S_IXGRP 0000010 execute/search by group S_IROTH 0000004 read by others S_IWOTH 0000002 write by others S_IXOTH 0000001 execute/search by others
- The effective user ID of the process must match the owner of the file or the caller must have ADMIN privilege in the Cupv database. If a directory is writable and has the sticky bit set, files/directories within that directory can be removed or renamed only if:
the effective user ID of the requestor matches the owner ID of the file or- the effective user ID of the requestor matches the owner ID of the directory or
- the file is writable by the requestor or
- the requestor has 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 path
- name.
- 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.
- 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